ধরুন আমাদের একটি স্ট্রিং s আছে, আমাদের চেক করতে হবে যে s-এর কোনো পারমুটেশন প্যালিনড্রোম কিনা।
সুতরাং, যদি ইনপুটটি s ="admma" এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ আমরা "admma" কে "madam" তে পুনরায় সাজাতে পারি যা একটি প্যালিনড্রোম।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- c :=প্রতিটি পৃথক অক্ষর গণনা s ধারণ করে একটি মানচিত্র
- গণনা :=0
- c-এর সমস্ত মানের তালিকায় প্রতিটি i-এর জন্য করুন
- যদি আমি বিজোড় হয়, তাহলে
- যদি গণনা 0 এর সমান হয়, তাহলে
- গণনা :=গণনা + 1
- লুপ থেকে বেরিয়ে আসুন
- মিথ্যে ফেরত দিন
- যদি গণনা 0 এর সমান হয়, তাহলে
- যদি আমি বিজোড় হয়, তাহলে
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
from collections import Counter class Solution: def solve(self, s): c = Counter(s) count = 0 for i in c.values(): if i % 2 != 0: if count == 0: count += 1 continue return False return True ob = Solution() s = "admma" print(ob.solve(s))
ইনপুট
"admma"
আউটপুট
True