Logo

[LeetCode] 2351. First Letter to Appear Twice

[LeetCode] 2351. First Letter to Appear Twice の解答と解説

問題

https://leetcode.com/problems/first-letter-to-appear-twice/description/

解答

class Solution:
    def repeatedCharacter(self, s: str) -> str:
        seen = set()
        for c in s:
            if c in seen:
                return c
            seen.add(c)

計算量

sの文字数をnとした時、

  • Time Complexity: O(n)
  • Space Complexity: O(1)* *存在しうる文字列がアルファベット小文字のみのためO(26) = O(1)になる

解説

一度見た文字をhashSetに格納することで初めて重複する文字を瞬時にreturnできる。

重複の判定なので2以上のカウントは不要のため、hashMapよりhashSetを用いた方がシンプルに書ける。