দুটি স্ট্রিং Str এবং patt দেওয়া আছে। patt-র যে ক্যারেক্টার Str-এ সবচেয়ে কম ইনডেক্সে আছে, সেটি বের করতে হবে। patt-র কোনো ক্যারেক্টার Str-এ না থাকলে -1 ফেরত দিন।
উদাহরণ
ইনপুট: Str = "helloworld", patt = "wor"
আউটপুট: 'o' (Str-এ 'o' ইনডেক্স ৪-এ, 'w' ৫-এ, 'r' ৭-এ। ন্যূনতম ৪।)
সমাধানের পদ্ধতি
- patt-র প্রতিটি ক্যারেক্টারের জন্য Str-এ তার প্রথম উপস্থিতির ইনডেক্স খুঁজুন।
- সর্বনিম্ন ইনডেক্স সম্পন্ন ক্যারেক্টারটি নির্বাচন করুন।
- অপ্টিমাইজেশন: Str-র প্রতিটি ক্যারেক্টারের প্রথম ইনডেক্স প্রি-কম্পিউট (pre-compute) করে রাখলে O(1) লুকআপ (lookup) সম্ভব।
পাইথন কোড
def get_min_index_char(Str, patt):
min_index = 10**9
for i in range(len(patt)):
for j in range(len(Str)):
if patt[i] == Str[j] and j < min_index:
min_index = j
break
if min_index != 10**9:
return Str[min_index]
else:
return -1
Str = "helloworld"
patt = "wor"
print(get_min_index_char(Str, patt))
ইনপুট
"helloworld", "wor"
আউটপুট
o