public class MyClass {
private static boolean CanStringBeRearrangedAsPalindrome(String str) {
int[] ascii_count = new int[256];
for (int i = 0; i < str.length(); i++) {
ascii_count[(int)(str.charAt(i))]++;
}
int odd = 0;
for (int i = 0; i < 256; i++) {
if ((ascii_count[i] & 1) != 0) {
odd++;
}
if (odd > 1) return false;
}
return true;
}
public static void main(String args[]) {
final String str = "abcdacdb";
String result = CanStringBeRearrangedAsPalindrome(str) ? "Yes" : "No";
System.out.println(result);
result = CanStringBeRearrangedAsPalindrome("abcca") ? "Yes" : "No";
System.out.println(result);
result = CanStringBeRearrangedAsPalindrome("abcb") ? "Yes" : "No";
System.out.println(result);
}
}
/*
run:
Yes
Yes
No
*/