image.png
分析:回文串是关于中心对称的,因此个数为偶数的字符可以放在左右两边存在,而个数为奇数的字符只能存在中间
方法:哈希表法
寻找个数为奇数的字符
public static int longestPalindrome(String s) {
int[] arr = new int[128];
for(char c:s.toCharArray()){
arr[c]++;
}
int count = 0;
for(int i:arr){
count += (i%2);
}
return count==0?s.length():(s.length()-count+1);
}
时间复杂度:O(N)
空间复杂度:O(S):S为字符串空间大小