解题思路
1.判断每个字符出现的次数,偶数可以出现若干次,但是奇数只可出现0或者1
2.根据输入的字符串的长度的奇偶,结合上面奇数个数出现的次数,做结果判断
3.之所以只统计只出现奇数个数的字符,原因是,不管字符串长度为奇数还是偶数,偶数出现的字符,都可以平均两边分配;
解题遇到的问题
1.耗时和内存较大,需要优化
后续需要总结学习的知识点
1.Set的去重原理
2.是否还有其他方向
##解法1
class Solution {
public static boolean canPermutePalindrome(String s) {
char[] cs = s.toCharArray();
int time = 0;
for (int i = 0; i < cs.length; i++) {
if (getTimes(s, cs[i]) % 2 != 0) {
s = s.replace(cs[i], ' ');
time++;
}
}
if (s.length() % 2 == 0) {
if (time == 0) {
return true;
} else {
return false;
}
} else {
if (time == 1) {
return true;
} else {
return false;
}
}
}
public static int getTimes(String s, char a) {
char[] cs = s.toCharArray();
int num = 0;
for (int i = 0; i < cs.length; i++) {
if (cs[i] == a) {
num++;
}
}
return num;
}
}