通过奇偶数来判断回文,很好。
public class Solution {
public boolean canPermutePalindrome(String s) {
if (s == null || s.length() < 2) {
return true;
}
int oddCount = 0;
Map<Character, Boolean> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (map.containsKey(c)) {
if (map.get(c)) {
map.put(c, false);
oddCount++;
} else {
map.put(c, true);
oddCount--;
}
} else {
map.put(c, false);
oddCount++;
}
}
int mod = s.length() % 2;
if (mod == 0) {
if (oddCount == 0) {
return true;
} else {
return false;
}
} else {
if (oddCount == 1) {
return true;
} else {
return false;
}
}
}
}
本文介绍了一种使用哈希表实现的算法,该算法能够判断一个字符串是否可以通过重新排列其字符形成回文串。主要思路是跟踪每个字符出现的次数,并确保在长度为奇数的情况下最多只有一个字符出现奇数次。
171万+

被折叠的 条评论
为什么被折叠?



