[LeetCode][Easy]Most Common Word


質問する

  • で使用禁止語を除き、所与の文字の中で最も頻度の高い語
  • を探し出す.
  • 大文字と小文字を区別しません.
  • に答える


    パイソンは確かに有利な問題タイプだ.
    リスト計算により、次の4つが1つのキューで終了します.
    (1)文字のみ抽出
    (2)小文字に変換
    (3)単語単位で切り取る
    (4)禁制語の削除
    words = [word for word in re.sub('[^\w]', " ", paragraph).lower().split() if not in banned]
    以降の周波数計算に特化したcollection.Counterオブジェクトとして作成します.
    このとき注意しなければならないのはcollectionです.Counterはディックシリーズを再包装した構造です.
    most common(1)で抽出し、[キー]、[value]として出力します.
    キー値のみを抽出する場合は、最初のオブジェクトの最初の要素を表す[0][0]を貼り付ける必要があります.
    コード全体を以下に示します.
    class Solution:
        def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
            
            words = [word for word in re.sub('[^\w]', " ", paragraph)
                     .lower().split() if word not in banned]
            
            return collections.Counter(words).most_common(1)[0][0]