leetcode 409. 最長迴文串
阿新 • • 發佈:2018-12-10
給定一個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的迴文串。
在構造過程中,請注意區分大小寫。比如 "Aa"
不能當做一個迴文字串。
注意: 假設字串的長度不會超過 1010。
示例 1:
輸入: "abccccdd" 輸出: 7 解釋: 我們可以構造的最長的迴文串是"dccaccd", 它的長度是 7。
思路
- 一開始想把所有偶數加起來,把最大的奇數加上,然而沒過
- 後來才發現可以把奇數拆出偶數來
code
class Solution { public: int longestPalindrome(string s) { if(s.size()==0) return 0; int a[100]={0}; for(auto i:s) ++a[i-'A']; int sum1=0; int sum2=0; for(auto i:a){ if(i%2==0) sum1+=i; else{ sum2 += sum2==0; sum2+=i-1; } } return sum1+sum2; } };