中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leetcode 409:給定字符串,求能重組成的最長回文字符串

發布時間:2020-06-11 02:07:36 來源:網絡 閱讀:203 作者:Jayce_SYSU 欄目:編程語言
# -*- coding: utf-8 -*-
# @Time         : 2019-10-11 10:56
# @Author       : Jayce Wong
# @ProjectName  : job
# @FileName     : longestPalindrome.py
# @Blog         : https://blog.51cto.com/jayce1111
# @Github       : https://github.com/SysuJayce

"""
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.
"""

class Solution:
    """
    給定一個字符串,問其中的字符最多能組成多長的回文字符串?

    其實我們可以這樣想,所謂的回文字符串,就是從左到右和從右到左的遍歷是一樣的,那么就是說,
    每個字符都需要出現偶數次,當然,如果是奇數長度的回文字符串,其中間的字符可以是只出現了一次。

    也就是說,我們只需要判斷給定的字符串中各個字符的出現次數,把偶數次的字符挑出來,然后從奇數次的
    字符中找一個(如果存在出現次數為奇數的字符的話),這些字符就能組成最長的回文字符串。
    """
    def longestPalindrome(self, s: str) -> int:
        from collections import Counter
        # 找出所有奇數次的字符
        odds = sum(v & 1 for v in Counter(s).values())
        # 先把奇數次的字符去掉,然后從中找一個(如果有)
        return len(s) - odds + bool(odds)
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷波县| 宁陕县| 汝阳县| 尤溪县| 巴青县| 海林市| 怀集县| 个旧市| 岐山县| 玛纳斯县| 股票| 徐水县| 乌鲁木齐市| 昌平区| 会宁县| 行唐县| 玛多县| 桃江县| 翁牛特旗| 长治县| 富源县| 伊川县| 高雄县| 利川市| 繁峙县| 鲁山县| 秦安县| 南和县| 永城市| 纳雍县| 临泽县| 三明市| 铜陵市| 青田县| 高青县| 青州市| 沅陵县| 驻马店市| 濮阳市| 安陆市| 东明县|