collections.OrderedDict ব্যবহার করে স্ট্রিংয়ের ক্যারেক্টার অর্ডার রক্ষা করে প্যাটার্ন ম্যাচ করা হয়।
উদাহরণ
from collections import OrderedDict
def check_order(text, pattern):
od = OrderedDict.fromkeys(text) # ডুপ্লিকেট বাদ দিয়ে অর্ডার রাখে
idx = 0
for ch in od:
if ch == pattern[idx]:
idx += 1
if idx == len(pattern):
return "প্যাটার্নের অর্ডার সঠিক"
return "প্যাটার্নের অর্ডার ভুল"
text = "Hi Mark"
pattern = "Ma"
print("স্ট্রিং:", text)
print("প্যাটার্ন:", pattern)
print(check_order(text, pattern))
আউটপুট
স্ট্রিং: Hi Mark প্যাটার্ন: Ma প্যাটার্নের অর্ডার সঠিক
ব্যাখ্যা
OrderedDict.fromkeys(text)ডুপ্লিকেট ক্যারেক্টার বাদ দিয়ে অর্ডার সংরক্ষণ করে।প্যাটার্নের ক্যারেক্টার সিকোয়েন্স চেক করা হয়।
সব ক্যারেক্টার ক্রমে পাওয়া গেলে সঠিক, নয় তবে ভুল।
পাইথন ৩.৭+ এ সাধারণ ডিকশনারিও অর্ডার রাখে, কিন্তু OrderedDict eksplisit।