मान लीजिए हमारे पास एक लोअरकेस अल्फाबेट स्ट्रिंग text है, और एक अन्य स्ट्रिंग है जिसे key कहते हैं। हमें एक नई स्ट्रिंग ढूंढनी है जहां text[i] का हर अक्षर key[i] के ऑफसेट के साथ दाईं ओर ले जाया जाता है। यहां key[i] द्वारा दर्शाया गया ऑफसेट वर्णमाला में उसकी स्थिति है (A=0, B=1 आदि)। यदि अक्षर ओवरफ्लो होता है, तो यह दूसरी तरफ लपेट जाता है।
उदाहरण के लिए, यदि इनपुट है text = "code", key = "team", तो आउटपुट होगा "vsdq"
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- cip := एक नई सूची
- start := 'a' का ASCII
- text से प्रत्येक l और key से प्रत्येक k के लिए, करें
- shift := (k का ASCII) - start
- pos := start + ((l का ASCII) - start + shift) mod 26
- pos के वर्ण को cip के अंत में डालें
- cip के स्ट्रिंग्स को जोड़ें और वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, text, key): cip = [] start = ord('a') for l, k in zip(text, key): shift = ord(k) - start pos = start + (ord(l) - start + shift) % 26 cip.append(chr(pos)) return ''.join([l for l in cip]) ob = Solution() text = "code" key = "team" print(ob.solve(text, key))इनपुट
"code", "team"
आउटपुट
vsdq