抚州市做棋牌网站,邯郸信息港聊天室,在百度上做网站有用吗,仓储网站建设今天又是阴天#xff0c;不过阴天凉快#xff0c;我喜欢。第78天——第78题#xff08;最长回文串#xff09;看题目#xff01;给定一个包含大写字母和小写字母的字符串#xff0c;找到通过这些字母构造成的最长的回文串。在构造过程中#xff0c;请注意区分大小写。比…今天又是阴天不过阴天凉快我喜欢。第78天——第78题最长回文串看题目给定一个包含大写字母和小写字母的字符串找到通过这些字母构造成的最长的回文串。在构造过程中请注意区分大小写。比如 Aa 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:
abccccdd
输出:
7解释:我们可以构造的最长的回文串是dccaccd, 它的长度是 7。python解答class Solution:def longestPalindrome(self, s: str) - int:countcollections.Counter(s)center0res0for i in count:if count[i] % 2:center1rescount[i]-1else:rescount[i]return rescenter答案解析1.collections.Counter()2.组回文字符串的过程其实我们可以看作是从一个中心往旁边对称放字符的过程。首先我们先把给的字符串统计词频1对于所有的出现偶数次的字符那么其实在组回文字符串的时候就是可以看作直接放置在中心两侧因此有多少就直接加上去多少就好了。2对于所有的出现奇数次的字符那么实际上我们就可以看作是1 偶数次偶数次统统可以加上去剩下的都是单个的不同的字符选一个作为中心就好了。要注意的是如果给的字符串的字符频次全是偶数次那么肯定中心就不会是一个单一的字符所以要加一个判断如果出现了有字符是奇数次那么就1否则对于全是偶数次的字符就不需要加1了作者Da_bo_luo链接力扣来源力扣LeetCode著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。