मान लीजिए हमारे पास एक संख्या n है; हमें लंबाई n+1 की एक लोअरकेस स्ट्रिंग चेक करनी है ताकि किसी भी पोजीशन पर कैरेक्टर अपने तत्काल अगले कैरेक्टर से लेक्सिकोग्राफिकली बड़ा हो।
तो, यदि इनपुट 15 जैसा है, तो आउटपुट ponmlkjihgfedcba होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- temp_str := ब्लैंक स्ट्रिंग
- extra := n % 26
- यदि extra >= 1, तो
- i को 26 - (extra + 1) से 25 तक रेंज में, करें
- temp_str := temp_str + str[i]
- count := n // 26 (इंटीजर डिवीजन)
- i को 1 से count + 1 तक रेंज में, करें
- j को 0 से 25 तक रेंज में, करें
- temp_str := temp_str + str[j]
- j को 0 से 25 तक रेंज में, करें
- i को 26 - (extra + 1) से 25 तक रेंज में, करें
- temp_str लौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित इम्प्लीमेंटेशन देखें:
def show_string(n, str):
temp_str = ""
extra = n % 26
if extra >= 1:
for i in range(26 - (extra + 1), 26):
temp_str += str[i]
count = n // 26
for i in range(1, count + 1):
for j in range(26):
temp_str += str[j]
return temp_str
n = 15
str = "zyxwvutsrqponmlkjihgfedcba"
print(show_string(n, str))
इनपुट
15
आउटपुट
ponmlkjihgfedcba