কম্পিউটার

পাইথনে প্রদত্ত শর্তকে সন্তুষ্ট করে এমন অভিধানিকভাবে ক্ষুদ্রতম স্ট্রিংটি খুঁজুন


ধরুন আমাদের n সংখ্যার একটি অ্যারে আছে, যেখানে A[i] একটি স্ট্রিং s এর দৈর্ঘ্যের (i + 1) উপসর্গে স্বতন্ত্র অক্ষরের সংখ্যা নির্দেশ করে, আমাদের করতে হবে অভিধানগতভাবে ক্ষুদ্রতম স্ট্রিংটি খুঁজুন যা প্রদত্ত উপসর্গ অ্যারেকে সন্তুষ্ট করে। সমস্ত অক্ষর হবে ছোট হাতের ইংরেজি বর্ণমালা [a-z]। যদি এরকম কোন স্ট্রিং না থাকে তাহলে -1 রিটার্ন করুন।

সুতরাং, যদি ইনপুটটি A =[1,1,2,3,4] এর মত হয়, তাহলে আউটপুটটি aabcd হবে উপসর্গ হিসেবে 2টি স্বতন্ত্র অক্ষর রয়েছে, উপসর্গ[3]-এ 3টি স্বতন্ত্র অক্ষর রয়েছে, উপসর্গ [4]টিতে 4টি স্বতন্ত্র অক্ষর রয়েছে এবং স্ট্রিংটি সবচেয়ে ছোট৷

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

  • n :=A

    এর আকার
  • অক্ষর :='a'

  • স্ট্রিং :=ফাঁকা স্ট্রিং

  • যদি n <1 বা A[0] 1 না হয়, তাহলে

    • রিটার্ন -1

  • স্ট্রিং :=স্ট্রিং সংযুক্ত অক্ষর

  • অক্ষর :=এই বর্তমান চরিত্রের পরবর্তী অক্ষর

  • 1 থেকে n রেঞ্জের জন্য, করুন

    • পার্থক্য :=A[i] - A[i - 1]

    • যদি পার্থক্য> 1 বা পার্থক্য <0 বা A[i]> 26 হয়, তাহলে

      • রিটার্ন -1

    • অন্যথায় যখন পার্থক্য 0 এর মত হয়, তখন

      • স্ট্রিং :=স্ট্রিং কনক্যাটেনেট 'এ'

    • অন্যথায়,

      • স্ট্রিং :=স্ট্রিং সংযুক্ত অক্ষর

      • অক্ষর :=এই বর্তমান চরিত্রের পরবর্তী অক্ষর

  • রিটার্ন স্ট্রিং

উদাহরণ

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

def get_smallest_string(A):
   n = len(A)
   character = 'a'
   string = ""
   if (n < 1 or A[0] != 1):
      return -1
   string += str(character)
   character = chr(ord(character) + 1)
   for i in range(1, n):
      difference = A[i] - A[i - 1]
      if (difference > 1 or difference < 0 or A[i] > 26):
         return -1
      elif (difference == 0):
         string += 'a'
      else:
         string += character
         character = chr(ord(character) + 1)
return string

A = [1, 1, 2, 3, 4]
print(get_smallest_string(A))

ইনপুট

[1, 1, 2, 3, 4]

আউটপুট

aabcd

  1. পাইথনে একটি প্রদত্ত স্ট্রিং-এ k অনন্য অক্ষর সহ দীর্ঘতম সাবস্ট্রিং খুঁজুন

  2. পাইথনে একটি স্ট্রিং-এর অভিধানিকভাবে বৃহত্তম প্যালিনড্রোমিক অনুক্রম খুঁজুন

  3. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ “1(0+)1”-এর সমস্ত প্যাটার্ন খুঁজুন

  4. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ 10+1 এর সমস্ত প্যাটার্ন খুঁজুন