ধরুন আমাদের একটি ছোট হাতের বর্ণমালার স্ট্রিং টেক্সট আছে, এবং কী নামে আরেকটি স্ট্রিং আছে। আমাদের একটি নতুন স্ট্রিং খুঁজে বের করতে হবে যেখানে পাঠ্য[i]-এর প্রতিটি অক্ষর অফসেট কী[i] দিয়ে ডানদিকে সরানো হয়। এখানে অফসেটটি বর্ণমালায় কী[i] এর অবস্থান (A=0, B=1 ইত্যাদি) দ্বারা উপস্থাপিত হয়।
সুতরাং, যদি ইনপুটটি পাঠ্য ="কোড", কী ="টিম" এর মতো হয়, তাহলে আউটপুট হবে "vsdq"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- cip :=একটি নতুন তালিকা
- start :='a' এর ASCII
- টেক্সট থেকে প্রতিটি l এবং কী থেকে k, করুন
- shift :=(k এর ASCII) - শুরু করুন
- pos :=start +((l এর ASCII) - 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