#include <stdio.h>
#include <stdbool.h>
bool CanStringBeRearrangedAsPalindrome(const char str[]) {
int ascii_count[256] = { 0 };
for (int i = 0; str[i]; i++) {
ascii_count[str[i]]++;
}
int odd = 0;
for (int i = 0; i < 256; i++) {
if (ascii_count[i] & 1) {
odd++;
}
if (odd > 1) return false;
}
return true;
}
int main() {
const char str[] = "abcdacdb";
CanStringBeRearrangedAsPalindrome(str) ? puts("Yes") : puts("No");
CanStringBeRearrangedAsPalindrome("abcca") ? puts("Yes") : puts("No");
CanStringBeRearrangedAsPalindrome("abcb") ? puts("Yes") : puts("No");
}
/*
run:
Yes
Yes
No
*/