কম্পিউটার

পাইথনে একটি অপসারণের মাধ্যমে সমস্ত অক্ষরের ফ্রিকোয়েন্সি একই হতে পারে কিনা তা পরীক্ষা করুন


ধরুন আমরা একটি ছোট হাতের স্ট্রিং s আছে. একটি অক্ষর মুছে ফেলার পরে সমস্ত অক্ষরের ফ্রিকোয়েন্সি একই কিনা তা আমাদের পরীক্ষা করতে হবে।

সুতরাং, যদি ইনপুটটি s ="abbc" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা একটি b মুছে ফেলতে পারি স্ট্রিং "abc" পেতে যেখানে প্রতিটি উপাদানের ফ্রিকোয়েন্সি 1।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ঘটনা :=s এর সমস্ত অক্ষর এবং তাদের ফ্রিকোয়েন্সি সহ একটি মানচিত্র
  • যদি s-এর সমস্ত অক্ষরের উপস্থিতি একই হয়, তাহলে
    • সত্য ফেরান
  • s এর প্রতিটি অক্ষরের জন্য, করুন
    • ঘটনা[চর] :=সংঘটন[চর] - ১
    • যদি s-এর সমস্ত অক্ষরের উপস্থিতি একই হয়, তাহলে
      • সত্য ফেরান
    • ঘটনা[চর] :=সংঘটন[চর] + ১
  • মিথ্যে ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

from collections import defaultdict
def allSame(occurrence):
   counts = list(occurrence.values())
   return all(element == counts[0] for element in counts)
def solve(s):
   occurrence = defaultdict(int)
   for char in s:
      occurrence[char] += 1
   if allSame(occurrence):
      return True
   for char in s:
      occurrence[char] -= 1
      if allSame(occurrence):
         return True
      occurrence[char] += 1
   return False
s = "abbc"
print(solve(s))

ইনপুট

"abbc"

আউটপুট

True

  1. পাইথন - একটি স্ট্রিংয়ের সমস্ত অক্ষরের ফ্রিকোয়েন্সি আলাদা কিনা তা পরীক্ষা করুন

  2. পাইথন - একটি তালিকার সমস্ত উপাদান একই কিনা তা পরীক্ষা করুন

  3. পাইথন প্রোগ্রাম একটি স্ট্রিং সব অনন্য অক্ষর আছে কিনা তা পরীক্ষা করতে

  4. পাইথন প্রোগ্রাম একটি স্ট্রিং পুনর্বিন্যাস করতে যাতে সমস্ত একই অক্ষর d দূরত্বে পরিণত হয়