diff --git a/README.md b/README.md index b9c1787..54a05e7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # LeetCode -## 問題: +## 問題: [929. Unique Email Address](https://leetcode.com/problems/unique-email-addresses/description/) ## 前提 diff --git a/step1.md b/step1.md index 656f813..2f2b18e 100644 --- a/step1.md +++ b/step1.md @@ -1,4 +1,22 @@ # Step 1 +- emailを@で区切る +- @の前から'.'を取り除く +- @の前を'+'で区切る +- @の前と@の後ろをタプルにしてsetに入れる +- setの要素数を返す + ```python +class Solution: + def numUniqueEmails(self, emails: List[str]) -> int: + res = set() + for email in emails: + local_name, domain_name = email.split("@") + cleansed_local_name = local_name.replace(".", "").split("+")[0] + res.add((cleansed_local_name, domain_name)) + return len(res) ``` + +時間計算量: O(n \* m) + +空間計算量: O(n) diff --git a/step2.md b/step2.md index 6ec3360..504874a 100644 --- a/step2.md +++ b/step2.md @@ -1,4 +1,12 @@ # Step 2 ```python +class Solution: + def numUniqueEmails(self, emails: List[str]) -> int: + unique_emails = set() + for email in emails: + local_name, domain_name = email.split("@") + cleansed_local_name = local_name.replace(".", "").split("+")[0] + unique_emails.add((cleansed_local_name, domain_name)) + return len(unique_emails) ``` diff --git a/step3.md b/step3.md index fc9cd1b..834408c 100644 --- a/step3.md +++ b/step3.md @@ -1,4 +1,18 @@ # Step 3 ```python +class Solution: + def numUniqueEmails(self, emails: List[str]) -> int: + unique_emails = set() + for email in emails: + local_name, domain_name = email.split("@") + cleansed_local_name = local_name.replace(".", "").split("+")[0] + unique_emails.add((cleansed_local_name, domain_name)) + return len(unique_emails) ``` + +1回目: 1分57秒 + +2回目: 1分33秒 + +3回目: 1分38秒