কম্পিউটার টিউটোরিয়াল

পাইথনে একটি ক্যারেক্টার মুছে সব ক্যারেক্টার ফ্রিকোয়েন্সি সমান করা সম্ভব কিনা যাচাই করা

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

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

সমাধানের ধাপসমূহ

  • occurrence := s-এ থাকা সব ক্যারেক্টার ও ফ্রিকোয়েন্সির ম্যাপ
  • যদি সব ক্যারেক্টারের ফ্রিকোয়েন্সি ইতিমধ্যে সমান হয়, তবে true রিটার্ন করুন
  • প্রতিটি ক্যারেক্টার char-এর জন্য:
    • occurrence[char] := occurrence[char] - 1
    • যদি এখন সব ফ্রিকোয়েন্সি সমান হয়, তবে true রিটার্ন করুন
    • occurrence[char] := occurrence[char] + 1 (ফিরিয়ে দিন)
  • false রিটার্ন করুন

উদাহরণ

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 দূরত্বে থাকে