image.png
分析:回文串是關(guān)于中心對稱的,因此個(gè)數(shù)為偶數(shù)的字符可以放在左右兩邊存在赊抖,而個(gè)數(shù)為奇數(shù)的字符只能存在中間
方法:哈希表法
尋找個(gè)數(shù)為奇數(shù)的字符
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);
}
時(shí)間復(fù)雜度:O(N)
空間復(fù)雜度:O(S):S為字符串空間大小