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

পাইথনে যাচাই করুন স্ট্রিং-এ সব ক্যারেক্টারের ফ্রিকোয়েন্সি সমান (একটা ভ্যারিয়েশন সহ)

ধরুন, একটি লোয়ারকেস স্ট্রিং s দেওয়া হয়েছে। আমাদের যাচাই করতে হবে যে আমরা কি সর্বোচ্চ একটি ক্যারেক্টার ডিলিট করে স্ট্রিং-কে "বৈধ" বানাতে পারি। এখানে "বৈধ" মানে স্ট্রিং-এ থাকা সব یونিক ক্যারেক্টারের ফ্রিকোয়েন্সি (উপস্থিতির সংখ্যা) সমান।

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

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

  • ২৬ সাইজের occurrence অ্যারে-এ প্রতিটি ক্যারেক্টারের ফ্রিকোয়েন্সি গণনা করুন।
  • প্রথম নন-জিরো ফ্রিকোয়েন্সি occr1 এবং তার কাউন্ট occr1_cnt বের করুন।
  • দ্বিতীয় নন-জিরো ফ্রিকোয়েন্সি occr2 এবং তার কাউন্ট occr2_cnt বের করুন।
  • বাকি ফ্রিকোয়েন্সিগুলো চেক করুন:
    • যদি কোনো ফ্রিকোয়েন্সি occr1 বা occr2-এর সাথে মেলে না, তবে False।
    • যদি occr1_cnt > 1 এবং occr2_cnt > 1 হয় (অর্থাৎ দুটোও ফ্রিকোয়েন্সি একাধিকবার আসছে), তবে False।
  • অন্যথায় True ফেরত দিন।

উদাহরণ কোড

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
                occr2 = 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. পাইথনে স্ট্রিং কোন সাফিক্স দিয়ে শেষ হয়েছে কিনা যাচাই করা