题目描述:
示例:
解题思路:
解:
class Solution {
public int longestPalindrome(String s) {
//使用一个长度为 128 的数组,存储每个字符出现的次数,这是因为字符的 ASCII 值的范围为 [0, 128)
int[] count=new int[128];
//统计每个字符出现的次数
for(int i=0;i
count[c]++;
}
int ans=0;//存储回文串的长度
for(int v:count){
ans=ans+v/22;//在遍历字符时,ans 每次会增加 v / 2 2
//在发现了第一个出现次数为奇数的字符后,将 ans 增加 1,这样 ans 变为奇数,
//在后面发现其它出现奇数次的字符时,我们就不改变 ans 的值了
if(v%2==1 && ans%2==0){
ans++;
}
}
return ans;
}
}
