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

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

একটি স্ট্রিং s এবং ক্যারেক্টার c (যে s-তে আছে) দেওয়া আছে। প্রতিটি ইন্ডেক্স i-এর জন্য s[i]-এর c-থেকে নিকটতম দূরত্ব বের করে লিস্ট রিটার্ন করুন।

উদাহরণ

s = "ppqppq", c = "q" → আউটপুট: [2, 1, 0, 1, 1, 0]

এলগরিদম (টু-পাস / ফরওয়ার্ড-ব্যাকওয়ার্ড)

  1. j := len(s), d := [j-1]*j
  2. x := s.index(c)
  3. for i in range(j):
    • যদি s[i]==c and i>x: x:=i, বামদিকে আপডেট করুন।
    • d[i] := abs(x - i)
  4. d রিটার্ন করুন।

পাইথন কোড

def solve(s, c):
    j = len(s)
    d = [j - 1] * j
    x = s.index(c)
    for i in range(j):
        if s[i] == c and i > x:
            x = i
            ind = 1
            while True:
                if d[x - ind] > ind:
                    d[x - ind] = ind
                else:
                    break
                ind += 1
        d[i] = abs(x - i)
    return d

s = "ppqppq"
c = "q"
print(solve(s, c))  # আউটপুট: [2, 1, 0, 1, 1, 0]

ইনপুট / আউটপুট

"ppqppq", "q"
[2, 1, 0, 1, 1, 0]
  1. পাইথনে ইন্টারভালের তালিকা থেকে টোটাল ইউনিক ডিউরেশন বের করার প্রোগ্রাম

  2. পাইথনে তিনটি ইউনিক এলিমেন্ট যাদের যোগফল k-র সবচেয়ে কাছাকাছি (3Sum Closest)

  3. পাইথনে স্ট্রিং তালিকা থেকে লংগেস্ট কমন প্রিফিক্স খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে লিস্ট থেকে N বড় এলিমেন্ট বের করা