ধরুন আমাদের কাছে ছোট হাতের ইংরেজি অক্ষর সম্বলিত একটি স্ট্রিং স্ট্র এবং অ্যারে অ্যারের একটি অ্যারে রয়েছে, যেখানে arr[i] =[নির্দেশ, পরিমাণ] −
-
দিক হতে পারে 0 (বাম শিফটের জন্য) বা 1 (ডান শিফটের জন্য)।
-
পরিমাণ হল সেই পরিমাণ যার মাধ্যমে স্ট্রিং s স্থানান্তরিত করা হবে।
-
1 দ্বারা একটি বাম স্থানান্তর মানে s এর প্রথম অক্ষরটি সরিয়ে ফেলুন এবং এটিকে শেষে যুক্ত করুন।
-
একইভাবে, 1 দ্বারা একটি ডান স্থানান্তর মানে s এর শেষ অক্ষরটি সরিয়ে এটিকে শুরুতে যোগ করুন।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে স্ট্রিং এবং দ্বিতীয় আর্গুমেন্ট হিসাবে শিফট ডেটা ধারণকারী অ্যারে নেয়৷
ফাংশনটি অ্যারের উপর পুনরাবৃত্ত হওয়া উচিত এবং স্ট্রিংটিতে প্রয়োজনীয় পরিবর্তনগুলি সঞ্চালন করা উচিত এবং অবশেষে নতুন স্ট্রিংটি ফিরিয়ে দেওয়া উচিত৷
যেমন −
যদি ইনপুট স্ট্রিং এবং অ্যারে হয় −
const str = 'abc'; const arr = [[0, 1], [1, 2]];
তারপর আউটপুট −
হওয়া উচিতconst output = 'cab';
কারণ,
[0,1] মানে 1 দ্বারা বামে স্থানান্তর করা। “abc” -> “bca”
[1,2] মানে 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