LintCode python小白-簡単な問題-627最長回文列
2206 ワード
タイトル:大文字と小文字を含む文字列を指定します.これらのアルファベットからなる最長の回文列の長さを求めます.
データは大文字と小文字が敏感で、つまり「Aa」は回文列とは思われません.
文字列の長さは1010を超えないと仮定します.
例:s=「abcccdd」が7つの構築可能な最長文字列を返すスキームを与えるのは「dccaccd」である.
考え方:入力文字列 文字列を1つ1つの要素に切断し、対をなすことができる基本的に文列を構築することができる. 文字列を最初にリストに変換し、リストの各要素は文字列の各アルファベットで、順番に並べられ、同じ要素が並べられます. は2つのペアなので、奇数の同じ要素があれば偶数個しか取らず、もう1つは要求を満たすアルファベットではありません. 私たちは中位数を無視することはできません.すなわち、中間は独立したものであってもよく、リストの中の任意のものであってもよく、最大の回文列を求めるために、単独のアルファベットがあれば、それを中間に置いて、回文列の長さ+1にします.コード:
データは大文字と小文字が敏感で、つまり「Aa」は回文列とは思われません.
文字列の長さは1010を超えないと仮定します.
例:s=「abcccdd」が7つの構築可能な最長文字列を返すスキームを与えるのは「dccaccd」である.
考え方:
class Solution:
# @param {string} s a string which consists of lowercase or uppercase letters
# @return {int} the length of the longest palindromes that can be built
def longestPalindrome(self, s):
# Write your code here
slist=list(s) #
slist.sort() #
result=[] #
i=0 #
j=0 # 0
while i 1:
if slist[i]==slist[i+1]:
i+=2
j+=2
else:
i+=1
if j#
return j+1
else:
return j