मान लीजिए हमारे पास दो संख्याएं n और k हैं। हमें लंबाई k और दूरी n वाली लेक्सिकोग्राफिकली सबसे छोटी लोअरकेस स्ट्रिंग ढूंढनी है। दूरी वर्णमाला में अक्षर संख्या का योग है। उदाहरण के लिए, 'a' की अक्षर संख्या 1 है, 'b' की 2, 'y' की 25, 'z' की 26, इत्यादि।
उदाहरण के लिए, यदि इनपुट है n = 15, k = 3, तो आउटपुट "aam" होगा, क्योंकि "aam" लंबाई 3 की लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग है जिसकी दूरी 1 + 1 + 13 = 15 है।
एल्गोरिदम
dist:= आकारkका ऐरे, 1 से भरा हुआcredit := n - ki := k - 1while credit > 0:val := min(credit, 25)dist[i] := dist[i] + valcredit := credit - vali := i - 1
chr(d - 1 + ord('a'))को प्रत्येकdके लिए जोड़कर स्ट्रिंग बनाएं और लौटाएं
उदाहरण कार्यान्वयन
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)) # आउटपुट: aam
इनपुट
15, 3
आउटपुट
aam