একটি প্রদত্ত স্ট্রিং সংখ্যা এবং অক্ষরের মিশ্রণ হতে পারে। এই নিবন্ধে আমাদের সবচেয়ে বড় সাবস্ট্রিং খুঁজে বের করতে হবে যাতে অক্ষর এবং সংখ্যা একসাথে থাকে।
রি মডিউল সহ
রেগুলার এক্সপ্রেশন মডিউলটি অঙ্ক বা অক্ষর সম্বলিত সব ক্রমাগত সাবস্ট্রিং খুঁজে পেতে ব্যবহার করা যেতে পারে। তারপরে প্রাপ্ত সমস্ত সাবস্ট্রিংগুলির মধ্যে সর্বাধিক দৈর্ঘ্য রয়েছে এমন অক্ষর এবং অঙ্কগুলির অবিচ্ছিন্ন সাবস্ট্রিংগুলি বেছে নেওয়ার জন্য আমরা সর্বাধিক ফাংশন প্রয়োগ করি। Findall ফাংশনটি প্রয়োজনীয় সাবস্ট্রিংগুলি সনাক্ত করতে এবং পেতেও ব্যবহার করা হয়৷
উদাহরণ
import re def longSubstring(str): letter = max(re.findall(r'\D+', str), key=len) digit = max(re.findall(r'\d+', str), key=len) return letter, digit str = 'Hello 459 Congratulations! 234' print(longSubstring(str))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
(' Congratulations! ', '459')
len() এবং while লুপ দিয়ে
এটি একটি সোজা কিন্তু ধীর পদ্ধতি যেখানে আমরা প্রদত্ত স্ট্রিং-এ সাবস্ট্রিং হিসাবে উপস্থিত সংখ্যা এবং অক্ষরের দৈর্ঘ্য পরীক্ষা করার জন্য লুপ করার সময় ডিজাইন করি। তারপরে আমরা তাদের দৈর্ঘ্য তুলনা করি এবং সর্বাধিক দৈর্ঘ্য সহ কেবলমাত্র সাবস্ট্রিংগুলি বেছে নিই।
উদাহরণ
def longSubstring(s): max_letterSeq = '' max_digitSeq = '' i = 0 while (i < len(s)): current_letterSeq = '' current_digitSeq = '' # Letters while (i < len(s) and s[i].isalpha()): current_letterSeq += s[i] i += 1 # Digits while (i < len(s) and s[i].isdigit()): current_digitSeq += s[i] i += 1 # Check if not digit or alphabet if (i < len(s) and not (s[i].isdigit()) and not (s[i].isalpha())): i += 1 if (len(current_letterSeq) > len(max_letterSeq)): max_letterSeq = current_letterSeq if (len(current_digitSeq) > len(max_digitSeq)): max_digitSeq = current_digitSeq return max_letterSeq, max_digitSeq str = 'Hello 459 Congratulations! 234' print(longSubstring(str))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
('Congratulations', '459')