ধরুন আমাদের একটি সংখ্যা n আছে। আমরা সেই সংখ্যা থেকে একটি বর্ণানুক্রমিক ছোট হাতের স্ট্রিং তৈরি করতে পারি কিনা এবং স্ট্রিংটি প্যালিনড্রোম কিনা তা পরীক্ষা করতে হবে। এখানে আমরা শুধুমাত্র a থেকে j পর্যন্ত অক্ষর নিব, [a =0, b =1... j =9]। তাই যদি সংখ্যাটি 42 হয় তাহলে সাবস্ট্রিং "ec" 6 (4+2) অক্ষর "ececec" পর্যন্ত প্রিন্ট করা হবে তাহলে এটি প্যালিনড্রোম কিনা তা পরীক্ষা করে দেখুন৷
সুতরাং, যদি ইনপুটটি n =43 এর মত হয়, তাহলে আউটপুট হবে True স্ট্রিংটি "ededede" এবং এটি প্যালিনড্রোম।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- temp :=ফাঁকা স্ট্রিং
- s :=n স্ট্রিং হিসাবে
- অক্ষর :=a থেকে j পর্যন্ত সমস্ত অক্ষর
- সমষ্টি :=0
- substr :=ফাঁকা স্ট্রিং
- আমি 0 থেকে s - 1 এর পরিসরে, কর
- d :=s[i] সাংখ্যিক অঙ্ক হিসাবে
- substr :=substr concatenate অক্ষর[d]
- সমষ্টি :=যোগফল + d
- যখন temp-এর মাপ <=sum, do
- temp :=temp concatenate substr
- temp :=temp[সূচক 0 থেকে যোগফল - 1]
- টেম্প প্যালিনড্রোম হলে সত্য প্রত্যাবর্তন করুন, অন্যথায় মিথ্যা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def isPalindrome(s): return s == s[::-1] def solve(n): temp = "" s = str(n) letters = "abcdefghij" sum = 0 substr = "" for i in range(len(s)) : d = int(s[i]) substr += letters[d] sum += d while len(temp) <= sum: temp += substr temp = temp[:sum] return isPalindrome(temp) n = 43 print (solve(n))
ইনপুট
43
আউটপুট
True