मान लीजिए हमारे पास एक लोअरकेस अल्फाबेट स्ट्रिंग s है, और एक ऑफसेट नंबर k। हमें s के प्रत्येक अक्षर को अल्फाबेट में k पोजीशन आगे वाले अक्षर से बदलना है। ध्यान रखें कि जब अक्षर a या z के पार चला जाता है, तो यह दूसरी तरफ से रैप अराउंड हो जाता है।
यदि इनपुट "hello", k = 3 जैसा है, तो आउटपुट "khoor" होगा।
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- एक फंक्शन shift() परिभाषित करें। यह c लेगा:
- i := ASCII(c) - ASCII('a')
- i := i + k
- i := i mod 26
- ASCII('a') + i থেকে ক্যারেক্টার রিটার্ন করুন
- মূল মেথড থেকে, নিম্নলিখিত করুন:
- ret := s-এর প্রতিটি ক্যারেক্টার c-এর জন্য shift(c) কল করে একটি লিস্ট তৈরি করুন
- ret রিটার্ন করুন
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:
উদাহরণ
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