मान लीजिए कि हमारे पास एक लोअरकेस वर्णमाला स्ट्रिंग टेक्स्ट है, और एक और स्ट्रिंग है जिसे कुंजी कहा जाता है। हमें एक नई स्ट्रिंग ढूंढनी होगी जहां टेक्स्ट में प्रत्येक अक्षर [i] ऑफसेट कुंजी [i] के साथ दाईं ओर ले जाया जाता है। यहां ऑफसेट को वर्णमाला में कुंजी [i] की स्थिति (ए =0, बी =1 इत्यादि) द्वारा दर्शाया गया है। यदि अक्षर ओवरफ्लो हो जाता है, तो यह दूसरी तरफ लपेटा जाता है।
इसलिए, यदि इनपुट टेक्स्ट ="कोड", कुंजी ="टीम" जैसा है, तो आउटपुट "vsdq" होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- cip :=एक नई सूची
- प्रारंभ:='ए' का ASCII
- पाठ से प्रत्येक l और कुंजी से k के लिए, करें
- शिफ्ट:=(के का ASCII) - प्रारंभ
- pos :=start +((ASCII of l) - start + shift) mod 26
- cip के अंत में pos का वर्ण डालें
- सीआईपी के तार में शामिल हों और वापस लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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