LeetCode:409、最长回文串
生活随笔
收集整理的這篇文章主要介紹了
LeetCode:409、最长回文串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
409、最長回文串
- 題目:
- 解題思路:
- 源碼:
- 踩坑點:
題目:
解題思路:
先記錄每個字符出現的次數;
然后除2在乘2;奇數次則會取最大偶數次;偶數次則不變;
然后判斷是否存在奇數次的字符;若存在且結果為偶數個字符,則結果加1
然后將這個字符數組置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; }踩坑點:
我們希望的情況是每個字符有一個數組,這個數組記錄著字符出現的次數
但是在第二次循環中有8個數組,同一字符的數組會重復出現字符個數次;
所以我們在第一次判斷并加入結構之后必須要將這個字符所對應重復出現的剩下全部數組置0;
總結
以上是生活随笔為你收集整理的LeetCode:409、最长回文串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum(Fedora和RedHat以及S
- 下一篇: 实现SELECT的全选,反选,AB选的J