ধরুন আমাদের একটি স্ট্রিং আছে; প্যালিনড্রোম তৈরি করতে প্রদত্ত স্ট্রিংয়ের অক্ষরগুলিকে এলোমেলো করা যায় কিনা তা আমাদের পরীক্ষা করতে হবে৷
সুতরাং, যদি ইনপুটটি s ="aarrcce" এর মত হয়, তাহলে আউটপুট হবে True কারণ আমরা অক্ষরগুলিকে পরিবর্তন করে "রেসকার" গঠন করতে পারি যা একটি প্যালিনড্রোম।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- আকার :=256
- freq :=256 আকারের একটি অ্যারে এবং 0 দিয়ে পূরণ করুন
- 0 থেকে s আকারের রেঞ্জের জন্য,
- করুন
- ফ্রিকোয় অ্যারেতে অক্ষর s[i] এর ফ্রিকোয়েন্সি 1 দ্বারা বাড়ান
- বিজোড়_গণনা :=0
- আমি 0 থেকে আকারের রেঞ্জের জন্য,
- করুন
- যদি freq[i] id হয়, তাহলে
- odd_count :=odd_count + 1
- যদি odd_count> 1 হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি freq[i] id হয়, তাহলে
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
size = 256 def solve(s) : freq = [0] * size for i in range( 0, len(s)) : freq[ord(s[i])] = freq[ord(s[i])] + 1 odd_count = 0 for i in range(0, size) : if freq[i] % 2 == 1 : odd_count = odd_count + 1 if odd_count > 1: return False return True s = "aarcrce" print(solve(s))
ইনপুট
"aarcrce"
আউটপুট
True