ধরুন আমাদের একটি স্ট্রিং s আছে, আমাদের পরীক্ষা করতে হবে যে স্ট্রিং প্যালিনড্রোম তার উপসর্গ এবং প্রত্যয় সাবস্ট্রিং হিসাবে আছে কি না।
সুতরাং, যদি ইনপুটটি s ="levelishighforracecar" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ প্যালিনড্রোম উপসর্গ এবং প্রত্যয় রয়েছে:যথাক্রমে "level" এবং "racecar"।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- l :=s এর আকার
- 2 থেকে l + 2 রেঞ্জের জন্য,
- করুন
- যদি সূচী i পর্যন্ত s এর সাবস্ট্রিং প্যালিনড্রোম হয়, তাহলে
- লুপ থেকে বেরিয়ে আসুন
- যদি i(l + 1) এর মত হয়, তাহলে
- মিথ্যে ফেরত দিন
- 2 থেকে l + 2 রেঞ্জের জন্য,
- করুন
- যদি সূচক (l - i) থেকে (l - 1) পর্যন্ত s এর সাবস্ট্রিং প্যালিনড্রোম হয়, তাহলে
- সত্য ফেরান
- যদি সূচক (l - i) থেকে (l - 1) পর্যন্ত s এর সাবস্ট্রিং প্যালিনড্রোম হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি সূচী i পর্যন্ত s এর সাবস্ট্রিং প্যালিনড্রোম হয়, তাহলে
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def is_palindrome(s): return s == s[::-1] def solve(s): l = len(s) for i in range(2, l + 1): if is_palindrome(s[0:i]): break if i == (l + 1): return False for i in range(2, l + 1): if is_palindrome(s[l - i : l]): return True return False s = "levelishighforracecar" print(solve(s))
ইনপুট
"levelishighforracecar"
আউটপুট
True