Leetcode # 17. Letter Combinations of a Phone Number
https://leetcode.com/problems/letter-combinations-of-a-phone-number
Solution
n = len(digits)
Time Complexity: O(4 * (4 ** 2) * (4 ** 3) * … * (4 ** n)) = O((4 ** n) * n)
Space Complexity: O(n) (n is also the depth of recursion call stack)
(The input and output generally do not count towards the space complexity.)
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
self.comb = {
"": [],
"2": ["a", "b", "c"],
"3": ["d", "e", "f"],
"4": ["g", "h", "i"],
"5": ["j", "k", "l"],
"6": ["m", "n", "o"],
"7": ["p", "q", "r", "s"],
"8": ["t", "u", "v"],
"9": ["w", "x", "y", "z"]
}
if digits not in self.comb:
self.comb[digits] = [c1 + c2 \
for c1 in self.letterCombinations(digits[:-1]) \
for c2 in self.letterCombinations(digits[-1])]
return self.comb[digits]
Last Updated on 2023/08/16 by A1go