ধরুন আমাদের একটি স্ট্রিং s আছে, আমাদের পরীক্ষা করতে হবে যে প্রদত্ত স্ট্রিংটির অক্ষরগুলি একটি প্যালিনড্রোম তৈরি করতে এলোমেলো করা যেতে পারে কি না৷
সুতরাং, যদি ইনপুটটি s ="raaecrc" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা এটিকে "racecar"-এ পুনর্বিন্যাস করতে পারি যা একটি প্যালিনড্রোম।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- freq :=একটি মানচিত্র যাতে সমস্ত অক্ষর এবং তাদের ফ্রিকোয়েন্সি s তে সংরক্ষণ করা যায়
- বিজোড়_গণনা :=0 freq-এর সমস্ত মানের তালিকায় প্রতিটি উপাদান i জন্য
- যদি আমি বিজোড় হয়, তাহলে
- odd_count :=odd_count + 1
- যদি odd_count> 1 হয়, তাহলে
- মিথ্যে ফেরত দিন
- সত্য ফেরান
- করুন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
from collections import defaultdict def solve(st) : freq = defaultdict(int) for char in st : freq[char] += 1 odd_count = 0 for i in freq.values(): if i % 2 == 1: odd_count = odd_count + 1 if odd_count > 1: return False return True s = "raaecrc" print(solve(s))
ইনপুট
"raaecrc"
আউটপুট
True