python 最长回文字符串

 思路:哈希表

代码:

def function(s:str) ->str:
    n = len(s)

    counterStr = {}
    for i in s:
        counterStr[i] = counterStr.get(i,0) + 1

    leftStr = []
    midStr = []
    for key,val in counterStr.items():
        if val %2 ==1:
            midStr.append(key)
        if val >= 2:
            for _ in range(val//2):
                leftStr.append(key)
    leftStr.sort()
    leftStr_str = ''.join(leftStr)
    midStr.sort()

    ans = leftStr_str + midStr[0] + leftStr_str[::-1]
    return ans

s = 'abczcccddzz'
print(function(s))

猜你喜欢

转载自blog.csdn.net/L_goodboy/article/details/130905001