From 906f7a493ca7eba9e5ffe15d12f23662875c9984 Mon Sep 17 00:00:00 2001 From: Exzrgs Date: Wed, 2 Oct 2024 00:49:36 +0900 Subject: [PATCH 1/2] complete --- .../step1.py | 30 +++++++++++++++++++ .../step2.py | 28 +++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 NeetCode/letter-combinations-of-a-phone-number/step1.py create mode 100644 NeetCode/letter-combinations-of-a-phone-number/step2.py diff --git a/NeetCode/letter-combinations-of-a-phone-number/step1.py b/NeetCode/letter-combinations-of-a-phone-number/step1.py new file mode 100644 index 0000000..050f954 --- /dev/null +++ b/NeetCode/letter-combinations-of-a-phone-number/step1.py @@ -0,0 +1,30 @@ +class Solution: + def letterCombinations(self, digits: str) -> List[str]: + if not digits: + return [] + + digits_to_letters = { + "2": "abc", + "3": "def", + "4": "ghi", + "5": "jkl", + "6": "mno", + "7": "pqrs", + "8": "tuv", + "9": "wxyz", + } + res = [] + combs = [] + + def dfs(index): + if index == len(digits): + res.append("".join(combs)) + return + + for c in digits_to_letters[digits[index]]: + combs.append(c) + dfs(index + 1) + combs.pop() + + dfs(0) + return res diff --git a/NeetCode/letter-combinations-of-a-phone-number/step2.py b/NeetCode/letter-combinations-of-a-phone-number/step2.py new file mode 100644 index 0000000..d828fb2 --- /dev/null +++ b/NeetCode/letter-combinations-of-a-phone-number/step2.py @@ -0,0 +1,28 @@ +class Solution: + def letterCombinations(self, digits: str) -> List[str]: + digits_to_letters = { + "2": "abc", + "3": "def", + "4": "ghi", + "5": "jkl", + "6": "mno", + "7": "pqrs", + "8": "tuv", + "9": "wxyz", + } + res = [] + combs = [] + + def dfs(index): + if index == len(digits): + res.append("".join(combs)) + return + + for c in digits_to_letters[digits[index]]: + combs.append(c) + dfs(index + 1) + combs.pop() + + if digits: + dfs(0) + return res From b2df71c4a16c5b2a1ce76e9fa14bf5cefea4b67c Mon Sep 17 00:00:00 2001 From: Exzrgs Date: Wed, 2 Oct 2024 00:57:45 +0900 Subject: [PATCH 2/2] fix --- NeetCode/letter-combinations-of-a-phone-number/step2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NeetCode/letter-combinations-of-a-phone-number/step2.py b/NeetCode/letter-combinations-of-a-phone-number/step2.py index d828fb2..a86f8b0 100644 --- a/NeetCode/letter-combinations-of-a-phone-number/step2.py +++ b/NeetCode/letter-combinations-of-a-phone-number/step2.py @@ -1,6 +1,6 @@ class Solution: def letterCombinations(self, digits: str) -> List[str]: - digits_to_letters = { + digit_to_letters = { "2": "abc", "3": "def", "4": "ghi", @@ -18,7 +18,7 @@ def dfs(index): res.append("".join(combs)) return - for c in digits_to_letters[digits[index]]: + for c in digit_to_letters[digits[index]]: combs.append(c) dfs(index + 1) combs.pop()