हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो दोहराए जाने वाले वर्णों के साथ एक स्ट्रिंग लेता है और एक नई स्ट्रिंग देता है जिसमें सभी समान वर्ण एक दूसरे से बिल्कुल n वर्ण दूर होते हैं। और संख्या सरणी की लंबाई से छोटी होनी चाहिए।
उदाहरण के लिए -
If the input string is: "accessories" And the number n is 3 Then, The return value should be: "secrsecisao"
नोट - आवश्यक आउटपुट प्राप्त करने के लिए कुछ अन्य क्रमपरिवर्तन हो सकते हैं, आदेश महत्वपूर्ण नहीं है, हमें तर्क पर टिके रहना चाहिए और जब तक हम इसे पूरा करते हैं तब तक हमारा आउटपुट सही है।
आइए इस फ़ंक्शन के लिए कोड लिखें -
उदाहरण
const str = 'accessories'; const equalDistance = (str, num) => { const map = str.split("").reduce((acc, val) => { const count = acc.get(val); if(typeof count === 'number'){ acc.set(val, count+1); }else{ acc.set(val, 1); }; return acc; }, new Map()); const arr = Array.from(map).sort((a, b) => b[1] - a[1]); let newString = ''; for(let i = 0, count = 0; i < str.length;){ if(!arr[count][1]){ arr.splice(count, 1); continue; }; newString += arr[count][0]; arr[count][1]--; i++; count = i % num; }; return newString; }; console.log(equalDistance(str, 4)); console.log(equalDistance('abb', 2)); console.log(equalDistance('aacbbc', 3));
आउटपुट
कंसोल में आउटपुट होगा -
sceasceosri bab acbacb