ধরুন আমাদের কাছে একটি ছোট হাতের স্ট্রিং s এবং পূর্ণসংখ্যার আরেকটি তালিকা আছে যাকে শিফট বলা হয় যার দৈর্ঘ্য s এর দৈর্ঘ্যের সমান। এখানে শিফট[i] এর প্রতিটি উপাদান এটিকে নির্দেশ করে s এর প্রথম i + 1 অক্ষরগুলিকে স্থানান্তর করে [i] অবস্থানে। শিফটিং 'z' ক্রস করলে এটি 'a' পর্যন্ত মোড়ানো হবে। s-এ শিফট প্রয়োগ করার পরে আমাদের ফলাফল স্ট্রিংটি খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি s ="টমেটো" শিফটের মত হয় =[2, 5, 2, 3, 7, 4], তাহলে আউটপুট হবে "qjcoes" তাই, প্রথম অক্ষর 2 স্থানান্তর করার পরে, এটি হবে 't ' থেকে 'v', তাই স্ট্রিং হল "vomato", এর পরে প্রথম দুটি অক্ষর 5 স্থান। স্ট্রিংটি এখন "atmato" হবে এবং অবশেষে স্ট্রিংটি হবে "qjcoes"।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- start :=ASCII of "a"
- res :=প্রতিটি i-এর জন্য ASCII-এর (i - শুরু) একটি তালিকা
- আমার জন্য শিফটের পরিসরের আকার - 2 থেকে 0, 1 দ্বারা হ্রাস করুন, করুন
- বদল[i] :=শিফট[i] + শিফট[i + 1]
- আমি 0 থেকে s - 1 এর পরিসরের জন্য, কর
- c :=(res[i] + shifts[i]) mod 26
- res[i] :=ASCII সহ অক্ষর (c + start)
- অক্ষরগুলিকে একটি স্ট্রিং-এ যোগ করুন এবং ফিরে আসুন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def সমাধান(s, shifts):start =ord("a") res =[ord(i) - i in s] এর জন্য i range(len(shifts) - 2, -1, -1 ):শিফট[i] +=শিফটস[i + 1] রেঞ্জে i এর জন্য(len(s)):c =(res[i] + shifts[i]) % 26 res[i] =chr(c + start ) রিটার্ন করুন "." যোগ দিনইনপুট
[2, 1], 3, 2আউটপুট
qjcoes