একটি স্ট্রিং s এবং প্যাটার্ন t দেওয়া আছে। যাচাই করতে হবে যে s-এর ক্যারেক্টারগুলো t-এর ক্যারেক্টার অর্ডার অনুযায়ী সাজানো আছে কিনা। প্যাটার্নে ডুপ্লিকেট নেই।
উদাহরণ
ইনপুট: s = "hello world", t = "hw"
আউটপুট: True
ব্যাখ্যা: 'h' 'w'-এর আগে এসেছে।
অ্যালগরিদম
- প্রতিটি সংলগ্ন প্যাটার্ন ক্যারেক্টার পেয়ার (x, y) জন্য:
s-এ x-এর শেষ ইনডেক্সright, y-এর প্রথম ইনডেক্সleft।- যদি
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