রিকার্শন টেকনিক ব্যবহার করে একটি স্ট্রিং প্যালিনড্রোম কিনা চেক করতে সিম্পল ইন্ডেক্সিং এবং একটি ইউজার-ডিফাইন্ড ফাংশন, রিকার্শনের সাথে ব্যবহার করা হয়।
প্যালিনড্রোম হলো যেসব স্ট্রিং বা ভ্যালু যেগুলো বাম থেকে ডানে এবং ডান থেকে বামে পড়লে তাদের রেসপেক্টিভ ইনডেক্সে একই ক্যারেক্টার থাকে।
রিকার্শন বড় সমস্যায় ছোট ছোট অংশে ভাগ করে ফলাফল বের করে, এবং এই অংশগুলোকে কম্বাইন করে বড় সমস্যার সমাধান দেয়।
নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:
উদাহরণ
def check_palindrome(my_str):
if len(my_str) < 1:
return True
else:
if my_str[0] == my_str[-1]:
return check_palindrome(my_str[1:-1])
else:
return False
my_string = str(input("Enter the string :"))
print("The string is ")
print(my_string)
if check_palindrome(my_string) == True:
print("The string is a palindrome")
else:
print("The string isn't a palindrome")
আউটপুট
Enter the string : MalaM MalaM The string is MalaM The string is a palindrome
ব্যাখ্যা
- 'check_palindrome' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে যা একটি স্ট্রিং প্যারামিটার হিসেবে নেয়।
- যদি স্ট্রিং-এর সাইজ ১-এর চেয়ে কম হয়, 'True' আউটপুট হিসেবে রিটার্ন করা হয়।
- অন্যথায়, স্ট্রিং-এর লাস্ট এলিমেন্ট চেক করা হয় এটি ফার্স্ট এলিমেন্টের সাথে মached কিনা।
- মেথডটি আবার কল করা হয় সেকেন্ড ইনডেক্স থেকে লাস্ট ইনডেক্সের এলিমেন্টগুলোর ওপর, যেখানে লাস্ট ইনডেক্স ভ্যালু ডিজাইন অনুযায়ী এক্সক্লুডেড থাকবে।
- অন্যথায়, ফাংশনটি false রিটার্ন করে।
- ফাংশনের বাইরে, ইউজারকে একটি স্ট্রিং এন্টার করার জন্য বলা হয়েছে।
- এই স্ট্রিংটি কনসোলে ডিসপ্লে করা হয়েছে।
- মেথডটি এই স্ট্রিং পাস করে কল করা হয়েছে।
- যদি এর ভ্যালু 'True' ক্যালকুলেট হয়, প্রাসঙ্গিক মেসেজ কনসোলে ডিসপ্লে করা হয়।
- অন্যথায়, একটি ভিন্ন মেসেজ কনসোলে ডিসপ্লে করা হয়।