কম্পিউটার

পাইথনে অনুমোদিত একটি বৈচিত্র সহ একটি স্ট্রিং-এ একই ফ্রিকোয়েন্সি সহ সমস্ত অক্ষর আছে কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি ছোট হাতের স্ট্রিং s আছে, আমাদের পরীক্ষা করতে হবে যে আমরা সর্বাধিক 1টি অক্ষর মুছে s কে একটি বৈধ স্ট্রিংয়ে রূপান্তর করতে পারি কিনা। এখানে একটি বৈধ স্ট্রিং মানে একটি স্ট্রিং স্ট্র যেমন স্ট্র-এ সমস্ত অনন্য অক্ষরের জন্য প্রতিটি অক্ষরের ফ্রিকোয়েন্সি একই।

সুতরাং, যদি ইনপুটটি s ="xyyzx" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা z মুছে ফেলতে পারি তারপর স্ট্রিং হবে "xyyx" যেখানে x এবং y এর উপস্থিতি একই।

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

  • আকার :=26
  • ঘটনা :=26 আকারের একটি অ্যারে। এটি s-এ প্রতিটি অক্ষরের ফ্রিকোয়েন্সি সংরক্ষণ করছে
  • occr1 :=0
  • occr1_cnt :=0
  • আমি 0 থেকে সাইজ - 1 এর রেঞ্জের জন্য, কর
    • যদি ঘটনা[i] 0 না হয়, তাহলে
      • occr1 :=সংঘটন[i]
      • occr1_cnt :=1
      • লুপ থেকে বেরিয়ে আসুন
  • occr2 :=0
  • occr2_cnt :=0
  • j-এর জন্য i+1 থেকে আকার - 1, করুন
    • যদি ঘটনা[j] 0 না হয়, তাহলে
      • যদি ঘটনা[j] occr1 এর মত হয়, তাহলে
        • occr1_cnt :=occr1_cnt + 1
      • অন্যথায়,
        • occr2_cnt :=1
        • occr :=সংঘটন[j]
        • লুপ থেকে বেরিয়ে আসুন
  • j+1 থেকে আকার - 1-এর মধ্যে k-এর জন্য
  • করুন
    • যদি ঘটনা[k] 0 না হয়, তাহলে
      • যদি ঘটনা[k] occr1 এর মত হয়, তাহলে
        • occr1_cnt :=occr1_cnt + 1
      • যদি ঘটনা[k] occr2 এর মত হয়, তাহলে
        • occr2_cnt :=occr2_cnt + 1
      • অন্যথায়,
        • মিথ্যে ফেরত দিন
    • যদি occr1_cnt> 1 এবং occr2_cnt> 1 হয়, তাহলে
      • মিথ্যে ফেরত দিন
  • সত্য ফেরান

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

উদাহরণ

size = 26
def solve(str):
   occurrence = [0]*size
   for i in range(len(str)): occurrence[ord(str[i])-ord('a')] += 1
      occr1 = 0
      occr1_cnt = 0
      for i in range(size):
         if (occurrence[i] != 0):
            occr1 = occurrence[i]
            occr1_cnt = 1
            break
   occr2 = 0
   occr2_cnt = 0
   for j in range(i+1,size):
      if (occurrence[j] != 0):
         if (occurrence[j] == occr1):
            occr1_cnt += 1
         else:
            occr2_cnt = 1
            occr = occurrence[j]
            break
   for k in range(j+1,size):
      if occurrence[k] != 0:
         if (occurrence[k] == occr1):
            occr1_cnt += 1
      if (occurrence[k] == occr2):
         occr2_cnt += 1
      else:
         return False
      if occr1_cnt > 1 and occr2_cnt > 1:
         return False
   return True
s = "xyyzx"
print(solve(s))

ইনপুট

"xyyzx"

আউটপুট

True

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

  2. স্ট্রিং এর উভয় অর্ধেকের একই অক্ষর আছে কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম।

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

  4. পাইথনে প্রত্যয়গুলির তালিকা থেকে একটি স্ট্রিং শেষ হয় কিনা তা কীভাবে পরীক্ষা করবেন?