diff --git a/arai60/first-unique-character-in-a-string/step1.py b/arai60/first-unique-character-in-a-string/step1.py new file mode 100644 index 0000000..94456b7 --- /dev/null +++ b/arai60/first-unique-character-in-a-string/step1.py @@ -0,0 +1,17 @@ +""" +2m30s + +ループ1回で終わらせたいとは思ったが、2回にしてしまったほうがシンプルになると思ったのでそうした +""" + +from collections import defaultdict + +class Solution: + def firstUniqChar(self, s: str) -> int: + char_count = defaultdict(int) + for c in s: + char_count[c] += 1 + for i, c in enumerate(s): + if char_count[c] == 1: + return i + return -1 diff --git a/arai60/first-unique-character-in-a-string/step2.py b/arai60/first-unique-character-in-a-string/step2.py new file mode 100644 index 0000000..38b915f --- /dev/null +++ b/arai60/first-unique-character-in-a-string/step2.py @@ -0,0 +1,17 @@ +""" +割とみんな同じような解き方。 + +char_count → char_to_count +""" + +from collections import defaultdict + +class Solution: + def firstUniqChar(self, s: str) -> int: + char_to_count = defaultdict(int) + for c in s: + char_to_count[c] += 1 + for i, c in enumerate(s): + if char_to_count[c] == 1: + return i + return -1 diff --git a/arai60/first-unique-character-in-a-string/step3.py b/arai60/first-unique-character-in-a-string/step3.py new file mode 100644 index 0000000..e69de29