409. Longest Palindrome
- Total Accepted: 7696
- Total Submissions: 17179
- Difficulty: Easy
- Contributors: Admin
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; } }