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

পাইথনে স্ট্রিং-এর দুটি অর্ধেকের ক্যারেক্টার সেট একই কিনা যাচাই করা

এখানে আমরা চেক করব একটি স্ট্রিং-এর দুটি অর্ধেকের ক্যারেক্টার সেট এবং ফ্রিকোয়েন্সি একই কিনা। স্ট্রিং-এর দৈর্ঘ্য বিজোড় হলে মাঝপথের ক্যারেক্টার বাদ দিয়ে চেক করব।

অ্যালগরিদম

১. একটি স্ট্রিং ইনিশিয়ালাইজ করুন।
২. একটি খালি ডিকশনারি alphabets তৈরি করুন।
৩. mid ভেরিয়েবল = দৈর্ঘ্য / ২।
৪. প্রথম অর্ধেকের জন্য লুপ:
     ৪.১. ক্যারেক্টারের কাউন্ট ১ দিয়ে ইনিশিয়ালাইজ বা ইনক্রিমেন্ট করুন।
৫. দ্বিতীয় অর্ধেকের জন্য লুপ (শেষ থেকে mid পর্যন্ত):
     ৫.১. ক্যারেক্টার ডিকশনারিতে আছে কিনা চেক করুন।
     ৫.১.১. থাকলে কাউন্ট ১ কমান।
৬. ডিকশনারির ভ্যালুগুলো চেক করুন:
     ৬.১. যেকোনো ভ্যালু ০ এর চেয়ে বড় হলে "No!" প্রিন্ট করুন।
     ৬.২. সব ০ হলে "Yes!" প্রিন্ট করুন।

উদাহরণ কোড

string = "aabccbaa"
alphabets = {}
mid = len(string) // 2

# প্রথম অর্ধেক: ফ্রিকোয়েন্সি কাউন্ট
for i in range(mid):
    if not alphabets.get(string[i], 0):
        alphabets[string[i]] = 1
    else:
        alphabets[string[i]] += 1

# দ্বিতীয় অর্ধেক: ফ্রিকোয়েন্সি ডিক্রিমেন্ট
for i in range(len(string) - 1, mid - 1, -1):
    if alphabets.get(string[i], 0):
        alphabets[string[i]] -= 1

# ফ্ল্যাগ চেক
flag = 1
for i in alphabets.values():
    if i != 0:
        print("No!")
        flag = 0
        break

if flag == 1:
    print("Yes!")

আউটপুট

Yes!

উপসংহার

ডিকশনারি ব্যবহার করে দুটি অর্ধেকের ক্যারেক্টার ফ্রিকোয়েন্সি তুলনা করা যায়। প্রশ্ন থাকলে কমেন্ট করুন।


  1. দেওয়া স্ট্রিংটি ভয়েল প্যালিনড্রোম কিনা চেক করার পাইথন প্রোগ্রাম

  2. পাইথনে স্ট্রিং খালি কিনা চেক করা

  3. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা

  4. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা