LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次
Posted Pistachiout
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次相关的知识,希望对你有一定的参考价值。
解题思路
桶装法,字母出现偶数次一定可以计入总长度,再用count记录所有奇数余1次数,最后用长度减去count+1,因为所有的余1只能留下一个当中心
代码
class Solution
public int longestPalindrome(String s)
// 找出可以构成最长回文串的长度
int[] arr = new int[128];
for(char c : s.toCharArray())
arr[c]++;
int count = 0;
for (int i : arr)
count += (i % 2);//比如有5个a,可以取4个a形成回文串,count记录所有奇数余1次数,最后只能加1次
return count == 0 ? s.length() : (s.length() - count + 1);
//s.toCharArray
以上是关于LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次的主要内容,如果未能解决你的问题,请参考以下文章