ধরুন আমাদের 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