मान लीजिए हमारे पास एक स्ट्रिंग str है जिसमें लोअरकेस अंग्रेजी अक्षर हैं, और सरणियों की एक सरणी arr है, जहां arr[i] = [direction, amount]:
दिशा 0 (बाएं शिफ्ट के लिए) या 1 (दाएं शिफ्ट के लिए) हो सकती है।
राशि वह मात्रा है जिससे स्ट्रिंग
sको शिफ्ट किया जाना है।1 से बाएं शिफ्ट का अर्थ है
sका पहला अक्षर हटाकर अंत में जोड़ना।इसी तरह, 1 से दाएं शिफ्ट का अर्थ है
sका अंतिम अक्षर हटाकर शुरुआत में जोड़ना।
हमें एक JavaScript फ़ंक्शन लिखना है जो स्ट्रिंग को पहली आर्ग्युमेंट और शिफ्ट डेटा वाली सरणी को दूसरी आर्ग्युमेंट के रूप में लेता है।
फ़ंक्शन को सरणी पर पुनरावृति करके स्ट्रिंग में आवश्यक शिफ्ट करने चाहिए और अंत में नई स्ट्रिंग वापस करनी चाहिए।
उदाहरण
यदि इनपुट स्ट्रिंग और सरणी हैं:
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