いいものをつくろう

CTOの日記

アルゴリズム

【アルゴリズム脳トレ】leetcode easy 242 valid anagram

投稿日:

こんにちは

今回の学びは

・特になし

 

問題は。。。

(時間配分は5分問題理解 10分検討 10分実装  20分振り返り の一文45分構成)

まずは入出力をしっかりおさえましょう。

 

最初に前もって空文字の時はtrueでいいよね。という疑問を自己解答を考えることができたのは

良い点です

ハッシュを利用して

Space O(N)で

処理もO(N*2)なので O(N)というアルゴリズムです

 

実際の実装はこちら

所要時間はだいたい10分ですが、まだ遅いと思いますので

だんだん早くしていきましょう

 

 

from collections import defaultdict
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        length = len(s)
        if length != len(t): return False
        ZERO = defaultdict(int)
        for i in range(length):
            ZERO[s[i]] += 1
            ZERO[t[i]] -= 1
        for c, n in ZERO.items():
            if n != 0:
                return False
        return True

 

 

実装後です。timespace analysis (時間とスペースの分析)は ◯◯

 

まとめ

 

以上です

-アルゴリズム

Copyright© CTOの日記 , 2020 All Rights Reserved.