Java-最长回文串

如果某个字母是偶数,直接加上该字母出现的次数。
如果是奇数,加上该字母出现的次数减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用户
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。