如果某个字母是偶数,直接加上该字母出现的次数。
如果是奇数,加上该字母出现的次数减1。
如果出现了奇数,总数加1。
class Solution {
public int longestPalindrome(String s) {
int[] b = new int[128];
for (int i = 0;i<s.length();i++){
char c = s.charAt(i);
b[c]++;
}
int sum = 0;
int odd = 0;
for (int i = 0;i<b.length;i++){
if (b[i]!=0&&b[i]%2==0){
sum = sum+b[i];
}else if (b[i]!=0&&b[i]%2!=0){
sum = sum+b[i]-1;
odd =1;
}
}
System.out.println(sum+odd);
return sum+odd;
}
}
//解答成功: 执行耗时:4 ms,
击败了38.98% 的Java用户
内存消耗:37.9 MB,击败了5.00% 的Java用户