ধরুন আমাদের কাছে বর্ণসংখ্যার মান এবং চিহ্ন সহ একটি স্ট্রিং আছে। ছোট হাতের এবং বড় হাতের অক্ষরও আছে। শুধুমাত্র ছোট হাতের অক্ষরগুলি (বড় হাতের অক্ষরগুলিকে ছোট হাতের অক্ষরগুলিতে রূপান্তরিত করা হবে) বিবেচনা করে স্ট্রিংটি প্যালিনড্রোম তৈরি করছে কিনা তা আমাদের পরীক্ষা করতে হবে, কমা, স্থানের মতো অন্যান্য চিহ্নগুলি উপেক্ষা করা হবে৷
ধরুন স্ট্রিংটি "একটি মানুষ, একটি পরিকল্পনা, একটি খাল:পানামা" এর মতো, তাহলে এই নিয়মগুলি বিবেচনা করে, এটি হবে "আমানপ্লানচানাল্পনামা"। এটি একটি প্যালিনড্রোম।
এটি সমাধান করতে, এই ধাপগুলি অনুসরণ করুন -
- x =“” সংজ্ঞায়িত করুন
- প্রতিটি অক্ষর c str −
- এ পড়ুন
- যদি c ছোট হাতের অক্ষর বা সংখ্যা হয়, তাহলে x-এ c যোগ করুন
- অন্যথায় c একটি বড় হাতের অক্ষর, তারপর এটিকে ছোট হাতের অক্ষরে রূপান্তর করুন এবং x এর পরে যোগ করুন
- যদি x একটি প্যালিনড্রোম হয়, তাহলে সত্য ফেরত দিন, অন্যথায় মিথ্যা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য বাস্তবায়ন দেখি
শ্রেণীর সমাধান(অবজেক্ট):def isPalindrome(self, s):""" :type s:str :rtype:bool """ x ="" diff =ord('a') - ord('A' ) s তে i এর জন্য:যদি ord(i)>=ord('a') এবং ord(i)<=ord('z') বা ord(i)>=ord("0") এবং ord(i) <=ord("9"):x+=i elif ord(i)>=ord('A') এবং ord(i)<=ord('Z'):i =chr(diff+ord(i)) x+=i #মুদ্রণ(গুলি) #মুদ্রণ(x) ফেরত x ==x[::-1]ob1 =সমাধান()প্রিন্ট(ob1.isPalindrome("A Man, a Plan, a Canal:Panama"))প্রে>ইনপুট
s ="একটি মানুষ, একটি পরিকল্পনা, একটি খাল:পানামা"আউটপুট
সত্য