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

পাইথনে প্রথম স্ট্রিং-এ দ্বিতীয় স্ট্রিং-র ক্যারেক্টারগুলোর ন্যূনতম ইনডেক্সে থাকা ক্যারেক্টার

দুটি স্ট্রিং Str এবং patt দেওয়া আছে। patt-র যে ক্যারেক্টার Str-এ সবচেয়ে কম ইনডেক্সে আছে, সেটি বের করতে হবে। patt-র কোনো ক্যারেক্টার Str-এ না থাকলে -1 ফেরত দিন।

উদাহরণ

ইনপুট: Str = "helloworld", patt = "wor"

আউটপুট: 'o' (Str-এ 'o' ইনডেক্স ৪-এ, 'w' ৫-এ, 'r' ৭-এ। ন্যূনতম ৪।)

সমাধানের পদ্ধতি

  1. patt-র প্রতিটি ক্যারেক্টারের জন্য Str-এ তার প্রথম উপস্থিতির ইনডেক্স খুঁজুন।
  2. সর্বনিম্ন ইনডেক্স সম্পন্ন ক্যারেক্টারটি নির্বাচন করুন।
  3. অপ্টিমাইজেশন: 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
  1. পাইথনে ক্যারেক্টার স্ট্রীম থেকে প্রথম নন-রিপিটিং ক্যারেক্টার খুঁজে বের করা

  2. ডিকশনারি ব্যবহার করে স্ট্রিংয়ে প্রথম রিপিটেড ওয়ার্ড খুঁজে বের করা

  3. পাইথন প্রোগ্রাম: ক্যারেক্টার স্ট্রিম থেকে প্রথম নন-রিপিটিং ক্যারেক্টার বের করা

  4. পাইথনে স্ট্রিংয়ের প্রথম পুনরাবৃত্ত শব্দ খুঁজে বের করার প্রোগ্রাম