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

পাইথনে যাচাই করুন স্ট্রিং অন্য স্ট্রিং- থেকে কনস্ট্রেইন্টস দিয়ে তৈরি করা যায় কিনা

ধরুন, দুটি লোয়ারকেস স্ট্রিং s এবং t দেওয়া হয়েছে। আমাদের যাচাই করতে হবে যে t কি s-থেকে নিচের কনস্ট্রেইন্টস মেনে তৈরি করা যায়:

  1. t-এর ক্যারেক্টারগুলো s-এ থাকতে হবে (ফ্রিকোয়েন্সি মিলতে হবে)।
  2. যদি t-এর কোনো ক্যারেক্টার s-এ না থাকে, তবে তার আগের দুইটি ASCII ক্যারেক্টার (যেমন 'f' না থাকলে 'd' এবং 'e') s-থেকে ব্যবহার করে সেটি বানানো যাবে।

যেমন, ইনপুট s = "pghn", t = "pin" হলে আউটপুট হবে True, কারণ 'i' s-এ নেই, কিন্তু এর আগের দুটি 'g' এবং 'h' আছে, তাই 'i' বানানো যায়।

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

  • s-এর ক্যারেক্টার ফ্রিকোয়েন্সি freq ডিকশনারিতে রাখুন।
  • t-এর প্রতিটি ক্যারেক্টার ch এর জন্য:
    • যদি freq[ch] > 0 হয়, তবে এক কমান।
    • অন্যথায় যদি freq[chr(ord(ch)-1)] > 0 এবং freq[chr(ord(ch)-2)] > 0 হয়, তবে দুটোর ফ্রিকোয়েন্সি এক এক কমান।
    • অন্যথায় False ফেরত দিন।
  • লুপ শেষ হলে True ফেরত দিন।

উদাহরণ কোড

from collections import defaultdict

def solve(s, t):
    freq = defaultdict(lambda: 0)
    for ch in s:
        freq[ch] += 1
    for ch in t:
        if freq[ch]:
            freq[ch] -= 1
        elif freq[chr(ord(ch) - 1)] and freq[chr(ord(ch) - 2)]:
            freq[chr(ord(ch) - 1)] -= 1
            freq[chr(ord(ch) - 2)] -= 1
        else:
            return False
    return True

s = "pghn"
t = "pin"
print(solve(s, t))

ইনপুট

"pghn", "pin"

আউটপুট

True
  1. পাইথনে দেওয়া স্ট্রিং ক্যারেক্টার থেকে k দৈর্ঘ্যের প্যালিনড্রোমের সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে চেক করা: দেওয়া স্ট্রিং বাইনারি স্ট্রিং কিনা

  3. পাইথনে লিস্টের স্ট্রিং এলিমেন্ট কনক্যাটেনেট করে দেওয়া স্ট্রিং তৈরি করা যায় কিনা যাচাই করুন

  4. পাইথনে এক স্ট্রিংকে অন্য স্ট্রিংয়ের সাথে যোগ করা