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

পাইথনে স্ট্রিংয়ের ক্যারেক্টার প্যাটার্ন অনুসরণ করছে কিনা

একটি স্ট্রিং s এবং প্যাটার্ন t দেওয়া আছে। যাচাই করতে হবে যে s-এর ক্যারেক্টারগুলো t-এর ক্যারেক্টার অর্ডার অনুযায়ী সাজানো আছে কিনা। প্যাটার্নে ডুপ্লিকেট নেই।

উদাহরণ

ইনপুট: s = "hello world", t = "hw"

আউটপুট: True

ব্যাখ্যা: 'h' 'w'-এর আগে এসেছে।

অ্যালগরিদম

  1. প্রতিটি সংলগ্ন প্যাটার্ন ক্যারেক্টার পেয়ার (x, y) জন্য:
  2. s-এ x-এর শেষ ইনডেক্স right, y-এর প্রথম ইনডেক্স left।
  3. যদি right > left হয়, তবে অর্ডার ভাঙলো -> False।

উদাহরণ কোড

def solve(s, t):
    if len(s) < len(t):
        return False
    for i in range(len(t) - 1):
        x = t[i]
        y = t[i + 1]
        right = s.rindex(x)
        left = s.index(y)
        if right == -1 or left == -1 or right > left:
            return False
    return True

s = "hello world"
t = "hw"
print(solve(s, t))  # Output: True

ইনপুট

"hello world", "hw"

আউটপুট

True
  1. পাইথনে স্ট্রিংটি বৈধ JSON কিনা যাচাই

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

  3. পাইথনে প্যালিনড্রোম স্ট্রিং চেক করা

  4. পাইথনে বাক্য প্যাংগ্রাম (pangram) কিনা যাচাই করার প্রোগ্রাম