সিজার সাইফার ইঙ্ক্রিপ্টর
একটা ফাংশন লিখতে হবে যার ইনপুট হিসাবে নন-এম্পটি লোয়ার কেস স্ট্রিং এবং একটা নন-নেগেটিভ ইন্টিজার দেয়া হবে। স্ট্রিং এর প্রতিটা অক্ষরকে বর্তমান পজিশন থেকে k পজিশনের অক্ষরে পরিবর্তন করে যে নতুন স্টিং পাওয়া যাবে তা রিটার্ন করতে হবে। এখানে k হচ্ছে ইনপুট হিসেবে নেয়া নন-নেগেটিভ ইন্টিজার।

মনে রাখা দরকার যে, এখানে অক্ষর এর পজিশন র‍্যাপ করতে হবে, মানে হচ্ছে z এর ১ ঘর শিফট হবে a

নমুনা Input
string = "xyz"
key = 2

নমুনা Output
"zab"

Approach

টুলস

- ASCII Table: a (স্মল a) এর  ASCII ভেলু 97 এবং z (স্মল z) এর  ASCII ভেলু 122

- modulus (%):  Divides the left hand operand by the right hand operand and returns remainder 

- StringBuilder

টেকনিক  

- key  যেকোন লেংথ এর হতে পারে কিন্তু  ইংরেজিতে স্মল ক্যারেক্টর আছে 26 টা, তাই  key কে 26 দিয়ে মডুলাস করতে হবে 

- স্ট্রিং এর লেংথ দিয়ে লুপ চালিয়ে ক্যারেক্টার বের করতে হবে  

- (ক্যারেক্টর + key) এর ভ্যালু 122 এর বেশি হলে মডুলাস করে রিমাইন্ডার এর সাথে 96 যোগ করতে হবে। 96 কেন? কারণ 97 = a,  মানে যদি 1 রাইন্ড আপ হয় তাহলে z বা 122   থেকে  (96+1) = 97 বা a হবে 

Code Solution

Related video solution