Java-最长回文串

2020-07-01  本文已影响0人  一生太久只争朝夕

如果某个字母是偶数,直接加上该字母出现的次数。
如果是奇数,加上该字母出现的次数减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用户
上一篇 下一篇

猜你喜欢

热点阅读