Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.

This is case sensitive, for example"Aa"is not considered a palindrome here.

Note:
Assume the length of given string will not exceed 1,010.

记录字符出现的次数,偶数次的直接加入结果,奇数次的话加入出现次数减一,并把unique设为1

class Solution {
    public int longestPalindrome(String s) {
        if(s == null || s.length() == 0)
            return 0;

        int[] count = new int[128];
        for(int i = 0; i < s.length(); i++)
            count[s.charAt(i)]++;

        int res = 0;
        int unique = 0;
        for(int i = 0; i < count.length; i++){
            if(count[i] % 2 == 0) {
                res += count[i];
            } else {
                res += count[i] - 1;
                unique = 1;
            }
        }

        return res + unique;
    }
}

results matching ""

    No results matching ""