```
public class Solution {
public int longestPalindrome(String s) {
if(s==null||s.length()==0) return 0;
if(s.length()==1) return 1;
int[] charNums=new int[52];
for(char i:s.toCharArray()){
if(i>='a'){
charNums[i-'a']++; //0-25 is lowercase
}else{
charNums[26+i-'A']++; //26-51 for uppercase
}
}
int onlyone=0;
int sum=0;
for(int i : charNums){
if(onlyone==0&&i%2==1) onlyone=1;
sum+=i/2;
}
return (onlyone==1)?sum*2+1:sum*2;
}
}
```