JSFiddle - React, Tailwind, and code Playground
JavaScript
// O(n**2)
function replacer(str) {
const arr = str.split('').map(c => ({ char: c, enabled: true }));
for (let i = 0; i < arr.length; i += 1) {
if (!arr[i].enabled) continue;
for (let j = i + 1; j < arr.length; j += 1) {
if (arr[i].char === arr[j].char) {
arr[i].enabled = false;
arr[j].enabled = false;
break;
}
}
}
return arr.filter(item => item.enabled).map(item => item.char).join('') || '_';
}
//O(n)
function replacer2(str) {
const obj = {};
for (const i of str) {
if (!obj[i]) {
obj[i] = true;
} else {
delete obj[i];
}
}
return Object.keys(obj).join('') || '_';
}
console.log(replacer2('abbadddd'));