मान लीजिए कि हमारे पास एक लोअरकेस वर्णमाला स्ट्रिंग s है, और एक ऑफसेट संख्या k कहती है। हमें s के प्रत्येक अक्षर को अक्षर k के स्थान पर आगे अक्षर के साथ बदलना होगा। हमें यह ध्यान रखना होगा कि जब अक्षर a या z से आगे निकल जाता है, तो वह दूसरी तरफ लिपट जाता है।
इसलिए, यदि इनपुट "हैलो", k =3 जैसा है, तो आउटपुट "खूर" होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन शिफ्ट () को परिभाषित करें। इसमें c
. लगेगा -
i :=(c) का ASCII - ('a') का ASCII
-
मैं :=मैं + के
-
मैं :=मैं मॉड 26
-
ASCII (ASCII of ('a') + i)
. से रिटर्न कैरेक्टर -
मुख्य विधि से, निम्न कार्य करें -
-
ret :=प्रत्येक वर्ण c in s के लिए, Shift(c) को कॉल करके तत्वों की एक सूची बनाएं
-
वापसी रिट
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution:
def solve(self, s, k):
def shift(c):
i = ord(c) - ord('a')
i += k
i %= 26
return chr(ord('a') + i)
return "".join(map(shift, s))
ob = Solution()
print(ob.solve("hello", 3)) इनपुट
"hello", 3
आउटपुट
khoor