মনে করুন একটি স্ট্রিং str আছে যেটিতে শুধু ইংরেজি ছোট হাতের অক্ষর রয়েছে, এবং একটি অ্যারে arr আছে যেটির প্রতিটি উপাদান হচ্ছে [direction, amount]।
directionহতে পারে ০ (বামে শিফ্ট) বা ১ (ডানে শিফ্ট)।amountহলো স্ট্রিংটি কতটুকু শিফ্ট করতে হবে।১ বাম শিফ্ট মানে স্ট্রিংয়ের প্রথম অক্ষরটি সরিয়ে শেষে যোগ করা।
১ ডান শিফ্ট মানে স্ট্রিংয়ের শেষ অক্ষরটি সরিয়ে শুরুতে যোগ করা।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা স্ট্রিংটি প্রথম আর্গুমেন্ট ও শিফ্ট ডেটার অ্যারেটি دومা আর্গুমেন্ট হিসেবে নেবে। ফাংশনটি অ্যারেটি ইটারেট করে স্ট্রিংয়ে প্রয়োজনীয় শিফ্টগুলো সম্পাদন করবে এবং নতুন স্ট্রিংটি রিটার্ন করবে।
উদাহরণ:
ইনপুট স্ট্রিং ও অ্যারে হলে:
const str = 'abc'; const arr = [[0, 1], [1, 2]];
আউটপুট হবে:
const output = 'cab';
কারণ:
[0,1] মানে বামে ১ শিফ্ট। "abc" -> "bca"
[1,2] মানে ডানে ২ শিফ্ট। "bca" -> "cab"
উদাহরণ
কোডটি নিচের মতো:
const str = 'abc'; const arr = [[0, 1], [1, 2]]; const performShifts = (str = '', arr = []) => { if(str.length < 2){ return str; }; let right = 0 let left = 0; for(let sub of arr){ if(sub[0] == 0){ left += sub[1]; }else{ right += sub[1]; }; }; if(right === left){ return str; } if(right > left){ right = right - left; right = right % str.length; return str.substring(str.length - right) + str.substring(0, str.length - right); }else{ left = left - right; left = left % str.length; return str.substring(left) + str.substring(0,left); }; }; console.log(performShifts(str, arr)); আউটপুট
কনসোলে আউটপুট:
cab