मान लीजिए कि हमारे पास एक अल्फ़ान्यूमेरिक स्ट्रिंग s है जिसमें इसके सम स्थिति में अंग्रेजी के लोअरकेस अक्षर हैं और इसके विषम पदों में अंक हैं। एक ऑपरेशन शिफ्ट (सी, एक्स) पर विचार करें, जहां सी कोई भी वर्ण है और एक्स एक संख्या (अंक) है, यह सी के बाद xवां वर्ण ढूंढेगा। तो, उदाहरण के लिए, शिफ्ट ('पी', 5) ='यू' और शिफ्ट ('ए', 0) ='ए'। अब प्रत्येक विषम सूचकांक i के लिए, हम अंक s[i] को शिफ्ट(s[i-1], s[i]) से बदलना चाहते हैं। हमें सभी अंकों को बदलने के बाद s खोजना होगा।
इसलिए, यदि इनपुट s ="a2b1d4f3h2" जैसा है, तो आउटपुट "acbcdhfihj" होगा क्योंकि
-
शिफ्ट ('ए', 2) ='सी'
-
शिफ्ट ('बी', 1) ='सी'
-
शिफ्ट ('डी', 4) ='एच'
-
शिफ्ट ('एफ', 3) ='आई'
-
शिफ्ट ('एच', 2) ='जे'
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस:=खाली स्ट्रिंग
-
मैं के लिए 0 से s के आकार की सीमा में, ऐसा करें
-
अगर s[i] एक अंक है, तो
-
रेस :=रेस कॉन्टेनेट कैरेक्टर फ्रॉम (ASCII s[i] + ASCII of s[i-1])
-
-
अन्यथा,
-
res :=res concatenate s[i]
-
-
-
रिटर्न रेस
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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