From a2767581a98e60cbf57e4090359dcd3d86b70107 Mon Sep 17 00:00:00 2001 From: Exzrgs Date: Mon, 13 May 2024 14:09:01 +0900 Subject: [PATCH] complete --- .../first-unique-character-in-a-string/step1.py | 17 +++++++++++++++++ .../first-unique-character-in-a-string/step2.py | 17 +++++++++++++++++ .../first-unique-character-in-a-string/step3.py | 0 3 files changed, 34 insertions(+) create mode 100644 arai60/first-unique-character-in-a-string/step1.py create mode 100644 arai60/first-unique-character-in-a-string/step2.py create mode 100644 arai60/first-unique-character-in-a-string/step3.py 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