हमें एक JavaScript फ़ंक्शन लिखना है जो पहले और एकमात्र तर्क के रूप में एक वर्ण स्ट्रिंग लेता है।
फ़ंक्शन को स्ट्रिंग में मौजूद वर्णों को पुनर्व्यवस्थित करने का प्रयास करना चाहिए ताकि कोई दो समान वर्ण एक-दूसरे के निकट न हों।
यदि ऐसा कम से कम एक संयोजन मौजूद है तो हमारा फ़ंक्शन वह संयोजन स्ट्रिंग वापस करेगा अन्यथा हमारा फ़ंक्शन एक खाली स्ट्रिंग वापस करेगा।
उदाहरण के लिए -
यदि इनपुट स्ट्रिंग है -
const str = 'add';
तो हमारा फ़ंक्शन आउटपुट कर सकता है -
const output = 'dad';
उदाहरण
निम्नलिखित कोड देखें:
const str = 'add';
const formatString = (str = '') => {
const map = {};
for (let i = 0; i < str.length; i++) {
map[str[i]] = map[str[i]] || 0;
map[str[i]]++;
}
let keys = Object.keys(map).sort((a, b) => {
if (map[a] < map[b]) {
return 1;
};
return -1;
});
let flag = str.length % 2 ? (Math.floor(str.length / 2) + 1) : str.length / 2;
if (map[keys[0]] > flag) {
return "";
};
const res = [];
let index = 0, max = str.length - 1;
while (keys.length) {
let currKey = keys.shift();
let count = map[currKey];
while (count) {
res[index] = currKey;
index = index + 2;
if (index > max)
index = 1;
count--;
}
}
return res.join("");
};
console.log(formatString(str));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
dad