মান লিজিয়ে দুটি ভ্যালু আছে n এবং k। আমাদের দৈর্ঘ্য n এবং সংখ্যাসূচক মান k والے লেক্সিকোগ্রাফিক্যালি ন্যূনতম স্ট্রিং বের করতে হবে। একটি লোয়ারকেস ক্যারেক্টারের সংখ্যাসূচক মান হল অ্যালফাবেটে এর পজিশন (১ থেকে শুরু), যেমন 'a'=1, 'b'=2 ইত্যাদি। একটি স্ট্রিং-এর সংখ্যাসূচক মান হল এর ক্যারেক্টারগুলোর মানগুলোর যোগফল।
যেমন, ইনপুট হলে n = 4, k = 16, তবে আউটপুট হবে "aaam" কারণ এখানে মান 1+1+1+13 = 16, এবং দৈর্ঘ্য ৪ সহ এই মানের ন্যূনতম স্ট্রিং यही।
সমাধানের ধাপসমূহ
string := খালি স্ট্রিংn > 0থাকা পর্যন্ত:letter := min(26, k - n + 1)string += chr(letter + ord('a') - 1)k -= letter, n -= 1
স্ট্রিং রিভার্স করে রিটার্ন করুন।
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
def solve(n, k):
string = ""
while n > 0:
letter = min(26, k - n + 1)
string += chr(letter + ord('a') - 1)
k -= letter
n -= 1
return string[::-1]
n = 4
k = 16
print(solve(n, k))ইনপুট
4, 16
আউটপুট
aaam