Longest Palindrome
Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.
This is case sensitive, for example"Aa"is not considered a palindrome here.
Note: Assume the length of given string will not exceed 1,010.
Example:
Input:
"abccccdd"
Output:
7
Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.题目大意:
给定一个只包含小写或者大写字母的字符串,寻找用这些字母可以组成的最长回文串的长度。
大小写敏感,例如"Aa"在这里不认为是一个回文。
注意:
假设给定字符串的长度不超过1000。
解题思路:
统计每个字母的出现次数:
若字母出现偶数次,则直接累加至最终结果
若字母出现奇数次,则将其值-1之后累加至最终结果
若存在出现奇数次的字母(可存在一个奇书),将最终结果+1。(一旦出现奇书,则使odd=1,无论出现多少次奇书,都只等于1,因为最后结果只允许出现一个奇书)
简化:先加上每个数字出现的个数,如果是奇数,则减一,并且令odd=1
collections.Counter is a container that keeps track of how many times equivalent values are added.
Last updated
Was this helpful?