-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy path409.longest-palindrome.java
53 lines (52 loc) · 1.07 KB
/
409.longest-palindrome.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* @lc app=leetcode id=409 lang=java
*
* [409] Longest Palindrome
*
* https://leetcode.com/problems/longest-palindrome/description/
*
* algorithms
* Easy (47.46%)
* Total Accepted: 91.6K
* Total Submissions: 192.3K
* Testcase Example: '"abccccdd"'
*
* 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.
*
*
*/
class Solution {
public int longestPalindrome(String s) {
int[] counts = new int[256];
for (char c : s.toCharArray()) {
counts[c]++;
}
int palindrome = 0;
for (int count : counts) {
palindrome += (count/2) * 2;
}
if (palindrome < s.length()) {
palindrome++;
}
return palindrome;
}
}