কম্পিউটার

একটি প্রদত্ত স্ট্রিং এর অক্ষরগুলি পাইথনে একটি প্যালিনড্রোম গঠনের জন্য পুনর্বিন্যাস করা যেতে পারে কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি স্ট্রিং 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

  1. একটি স্ট্রিং পরীক্ষা করার প্রোগ্রাম প্যালিনড্রোম কি পাইথনে নয়

  2. পাইথনে তালিকার স্ট্রিং উপাদানগুলিকে সংযুক্ত করে প্রদত্ত স্ট্রিং তৈরি করা যায় কিনা তা পরীক্ষা করুন

  3. প্রদত্ত স্ট্রিংটি স্বরবর্ণ প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি প্রদত্ত স্ট্রিং নম্বর প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম