मान लीजिए हमारे पास एक अल्फान्यूमेरिक स्ट्रिंग s है जिसमें सम स्थितियों पर लोअरकेस अंग्रेजी अक्षर और विषम स्थितियों पर अंक हैं। एक ऑपरेशन shift(c, x) पर विचार करें, जहां c कोई वर्ण है और x एक संख्या (अंक) है, यह c के बाद xवां वर्ण ढूंढेगा। उदाहरण के लिए, shift('p', 5) = 'u' और shift('a', 0) = 'a'। अब प्रत्येक विषम इंडेक्स i के लिए, हम अंक s[i] को shift(s[i-1], s[i]) से बदलना चाहते हैं। सभी अंकों को बदलने के बाद s ढूंढें।
उदाहरण के लिए, यदि इनपुट s = "a2b1d4f3h2" है, तो आउटपुट "acbcdhfihj" होगा क्योंकि
shift('a', 2) = 'c'
shift('b', 1) = 'c'
shift('d', 4) = 'h'
shift('f', 3) = 'i'
shift('h', 2) = 'j'
हल करने के चरण
res := खाली स्ट्रिंग
i को 0 से s के आकार तक की रेंज में लिए करें
यदि s[i] एक अंक है, तो
res := res + (ASCII s[i] + ASCII of s[i-1]) से वर्ण
अन्यथा,
res := res + s[i]
res वापस करें
उदाहरण
def solve(s):
res = ""
for i in range(len(s)):
if s[i].isdigit():
res += chr(int(s[i]) + ord(s[i-1]))
else:
res += s[i]
return res
s = "a2b1d4f3h2"
print(solve(s))
इनपुट
"a2b1d4f3h2"
आउटपुट
acbcdhfihj