日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode409最长回文串 -字符哈希

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode409最长回文串 -字符哈希 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

給定一個包含大寫字母和小寫字母的字符串,找到通過這些字母構造成的最長的回文串。
在構造過程中,請注意區分大小寫。比如 “Aa” 不能當做一個回文字符串。
注意:假設字符串的長度不會超過 1010。

示例 1:
輸入:
“abccccdd”
輸出:
7
解釋:
我們可以構造的最長的回文串是"dccaccd", 它的長度是 7。

思路

字符哈希:數組下標,ASCII碼值映射。
字母出現偶數個,直接統計長度。
字母出現奇數個,舍棄一個字母,該字母需要標志位標識;剩余變成偶數,直接統計出現次數。

最后的結果:偶數統計的數量+flag(如果出現奇數個,作為中間那個字母)。

AC代碼

class Solution { public:int longestPalindrome(string s) {if(s.length()==0)//空串return 0;int char_map[128]={0};//下標統計int max_length=0;//回文串偶數部分最大長度int flag=0;//中心位標記,奇數for(int i=0;i<s.length();i++)char_map[s[i]]++;for(int i=0;i<128;i++){if(char_map[i]%2==0)//偶數個max_length+=char_map[i];else//奇數個{max_length+=char_map[i]-1;//處理成偶數flag=1;//奇數個,標志,放中間}}return max_length+flag;//偶數部分+中間位} };

題目來源:力扣(LeetCode)
鏈接:請點擊https://leetcode-cn.com/problems/longest-palindrome

總結

以上是生活随笔為你收集整理的Leetcode409最长回文串 -字符哈希的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。