問題描述
思路解析
- 因為同時包含大小寫字母,直接創建個ASCII表大小的桶來標記
- 又因為是要回文子串,所以偶數個數的一定可以
- 那么同時,對于出現奇數次數的,我沒需要他們的次數-1,變為偶數,并且可以標記出現過奇數的數字,這樣可以放到中間,結果+1即可
代碼
class Solution {public int longestPalindrome(String s) {int[] asc = new int[128];for (char ch : s.toCharArray()) {asc[ch]++;}int res = 0;boolean flag = false;for (int i = 0; i < 128; i++) {if (asc[i] != 0 && asc[i] % 2 == 0) {res += asc[i];} else if (asc[i] % 2 == 1) {flag=true;res += asc[i] - 1;}}return flag==true?res+1:res;}}