最长回文串_第78天——第78题(最长回文串 )
生活随笔
收集整理的這篇文章主要介紹了
最长回文串_第78天——第78题(最长回文串 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天又是陰天,不過陰天涼快,我喜歡。
第78天——第78題(最長回文串)
看題目!
給定一個包含大寫字母和小寫字母的字符串,找到通過這些字母構造成的最長的回文串。
在構造過程中,請注意區分大小寫。比如 "Aa" 不能當做一個回文字符串。
注意:假設字符串的長度不會超過 1010。
示例 1:
輸入: "abccccdd" 輸出: 7解釋:我們可以構造的最長的回文串是"dccaccd", 它的長度是 7。
python解答:
class Solution:def longestPalindrome(self, s: str) -> int:count=collections.Counter(s)center=0res=0for i in count:if count[i] % 2:center=1res+=count[i]-1else:res+=count[i]return res+center答案解析:
1.collections.Counter()
2.組回文字符串的過程,其實我們可以看作是從一個中心往旁邊對稱放字符的過程。
首先我們先把給的字符串統計詞頻
(1)對于所有的出現偶數次的字符,那么其實在組回文字符串的時候就是可以看作直接放置在中心兩側,因此有多少就直接加上去多少就好了。
(2)對于所有的出現奇數次的字符,那么實際上我們就可以看作是1 + 偶數次,偶數次統統可以加上去,剩下的都是單個的不同的字符,選一個作為中心就好了。
要注意的是,如果給的字符串的字符頻次全是偶數次,那么肯定中心就不會是一個單一的字符,所以要加一個判斷,如果出現了有字符是奇數次那么就+1,否則對于全是偶數次的字符,就不需要加1了
作者:Da_bo_luo
鏈接:力扣
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的最长回文串_第78天——第78题(最长回文串 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++卸载工具_win7系统如何卸载of
- 下一篇: fiddler如何设置过滤https_手