কম্পিউটার

পাইথনে দৈর্ঘ্য k এবং দূরত্ব n এর অভিধানিকভাবে সবচেয়ে ছোট ছোট হাতের স্ট্রিং খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের দুটি সংখ্যা n এবং k আছে। আমাদের কে এবং দূরত্ব n আকারের অভিধানিকভাবে সবচেয়ে ছোট ছোট হাতের স্ট্রিং খুঁজে বের করতে হবে। দূরত্ব হল বর্ণমালায় বর্ণ সংখ্যার সমষ্টি। যেমন, 'a'-এ 1 নম্বর, 'b'-এ 2, 'y'-এ 25, 'z'-এ 26 আছে।

সুতরাং, যদি ইনপুটটি n =15 k =3 এর মত হয়, তাহলে আউটপুট হবে "aam", কারণ "aam" হল অভিধানগতভাবে দৈর্ঘ্য 3 এর সবচেয়ে ছোট স্ট্রিং যার দূরত্ব হল 1 + 1 + 13 =15৷

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

  • dist :=k আকারের একটি অ্যারে, এবং 1 দিয়ে পূরণ করুন
  • ক্রেডিট :=n - k
  • i :=k - 1
  • যখন ক্রেডিট> 0, do
    • val :=সর্বনিম্ন ক্রেডিট এবং 25
    • dist[i] :=dist[i] + val
    • ক্রেডিট :=ক্রেডিট - ভ্যাল
    • i :=i - 1
  • (d - 1 + "a") এর ASCII-এর অক্ষর) প্রতিটি ডি-এর জন্য) যোগ দিন এবং ফিরে আসুন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(n, k):
   dist = [1] * k

   credit = n - k

   i = k - 1
   while credit > 0:
      val = min(credit, 25)
      dist[i] += val
      credit -= val
      i -= 1

   return "".join(chr(d - 1 + ord("a")) for d in dist)

n = 15
k = 3
print(solve(n, k))

ইনপুট

15, 3

আউটপুট

aam

  1. পাইথনে একটি স্ট্রিংয়ের দৈর্ঘ্য খুঁজুন (3 উপায়)

  2. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম

  3. একটি স্ট্রিং মধ্যে মিরর অক্ষর খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় বৃহত্তম, ক্ষুদ্রতম, দ্বিতীয় বৃহত্তম এবং দ্বিতীয় ক্ষুদ্রতম খুঁজে পেতে?