1. 程式人生 > >LeetCode oj 409. Longest Palindrome (迴文串)

LeetCode oj 409. Longest Palindrome (迴文串)

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.

Example:

Input:
"abccccdd"

Output:
7

Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.
給你一個字串,問用串中的字母能組成的最長迴文串的長度
用hash表統計字母數,偶數的直接累加,奇數的-1之後累加,如果有奇數,結果加一,沒有就直接輸出
public class Solution {
    public int longestPalindrome(String s) {
               int len = s.length();
        int cnt = 0;
        if(len == 0)
            return 0;
        int count[] = new int[256];
        for(int i=0;i<len;i++){
            count[s.charAt(i)]++;
        }
        int flag = 0;
        for(int i=0;i<256;i++){
            if(count[i] % 2 == 0)
                cnt += (count[i]);
            else{
            	flag = 1;
                cnt += (count[i] - 1) ;
            }
        }
        if(flag == 0)
        	return cnt;
        else
        	return cnt+1;
    }
}