LeetCode:409、最长回文串
生活随笔
收集整理的這篇文章主要介紹了
LeetCode:409、最长回文串
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
409、最長回文串
- 題目:
- 解題思路:
- 源碼:
- 踩坑點(diǎn):
題目:
解題思路:
先記錄每個(gè)字符出現(xiàn)的次數(shù);
然后除2在乘2;奇數(shù)次則會(huì)取最大偶數(shù)次;偶數(shù)次則不變;
然后判斷是否存在奇數(shù)次的字符;若存在且結(jié)果為偶數(shù)個(gè)字符,則結(jié)果加1
然后將這個(gè)字符數(shù)組置0(必須置0);
源碼:
int longestPalindrome(char * s){int res = 0;int count[128] = {0};for(int i=0;i<strlen(s);i++)count[s[i]] ++;for(int i=0;i<strlen(s);i++){res += count[s[i]] / 2 * 2;if(count[s[i]] % 2 !=0 && res % 2 == 0)res ++;count[s[i]] = 0;}return res; }踩坑點(diǎn):
我們希望的情況是每個(gè)字符有一個(gè)數(shù)組,這個(gè)數(shù)組記錄著字符出現(xiàn)的次數(shù)
但是在第二次循環(huán)中有8個(gè)數(shù)組,同一字符的數(shù)組會(huì)重復(fù)出現(xiàn)字符個(gè)數(shù)次;
所以我們?cè)诘谝淮闻袛嗖⒓尤虢Y(jié)構(gòu)之后必須要將這個(gè)字符所對(duì)應(yīng)重復(fù)出現(xiàn)的剩下全部數(shù)組置0;
總結(jié)
以上是生活随笔為你收集整理的LeetCode:409、最长回文串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum(Fedora和RedHat以及S
- 下一篇: windows下常用运行命令