function CanStringBeRearrangedAsPalindrome(str) {
let ascii_count = Array(256).fill(0);
for (let i = 0; i < str.length; i++) {
ascii_count[str[i].charCodeAt(0)]++;
}
let odd = 0;
for (let i = 0; i < 256; i++) {
if ((ascii_count[i] & 1) != 0) {
odd++;
}
if (odd > 1) {
return false;
}
}
return true;
}
const str = "abcdacdb";
let result = CanStringBeRearrangedAsPalindrome(str) ? "Yes" : "No";
console.log(result);
result = CanStringBeRearrangedAsPalindrome("abcca") ? "Yes" : "No";
console.log(result);
result = CanStringBeRearrangedAsPalindrome("abcb") ? "Yes" : "No";
console.log(result);
/*
run:
Yes
Yes
No
*/