কম্পিউটার

পাইথনে সেই সূচী থেকে সি অক্ষরের নিকটতম দূরত্ব দেখায় এমন তালিকা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s এবং আরেকটি অক্ষর c, s তে অবশ্যই c উপস্থিত থাকতে হবে, আমাদের একটি তালিকা খুঁজে বের করতে হবে যার দৈর্ঘ্য s এর দৈর্ঘ্যের সমান যেখানে প্রতিটি সূচক i এর জন্য এর মানটি s[i] এর নিকটতম দূরত্ব নির্ধারণ করা হয়েছে গ.

সুতরাং, যদি ইনপুট s ="ppqppq" c ="q" এর মত হয়, তাহলে আউটপুট হবে [2, 1, 0, 1, 1, 0]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • j :=s এর আকার

  • d :=[j - 1] * j

  • x :=s

    এ c এর সূচক
  • আমি 0 থেকে j - 1 রেঞ্জের জন্য, কর

    • যদি s[i] c এবং i> x এর মত হয়, তাহলে

      • x :=i, ind :=1

      • নিচের মাধ্যমে লুপ করুন, করুন

        • যদি d[x - ind]> ind, তাহলে

          • d[x - ind] :=ind

        • অন্যথায়,

          • লুপ থেকে বেরিয়ে আসুন

        • ind :=ind + 1

    • d[i] :=|x - i|

  • 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))

ইনপুট

"ppqppq", "q"

আউটপুট

[2, 1, 0, 1, 1, 0]

  1. পাইথনে ব্যবধানের তালিকা থেকে মোট অনন্য সময়কাল খুঁজে বের করার প্রোগ্রাম

  2. তালিকা থেকে তিনটি অনন্য উপাদান খুঁজে বের করার প্রোগ্রাম যার যোগফল k পাইথনের সবচেয়ে কাছাকাছি

  3. পাইথনের স্ট্রিংগুলির তালিকা থেকে দীর্ঘতম সাধারণ উপসর্গ খুঁজে বের করার জন্য প্রোগ্রাম

  4. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম