मान लीजिए कि हमारे पास एक स्ट्रिंग स्ट्र है जिसमें लोअरकेस अंग्रेजी अक्षर हैं, और सरणियों की एक सरणी गिरफ्तार है, जहां गिरफ्तारी [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 से दाईं ओर शिफ्ट होना है। "बीसीए" -> "कैब"
उदाहरण
इसके लिए कोड होगा -
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