leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

letter-combinations-of-a-phone-numberV1.py (938B)


      1 class Solution:
      2     def letterCombinations(self, digits: str) -> List[str]:
      3 
      4         if digits == "":
      5             return []
      6 
      7         lookup = {
      8             2: ["a", "b", "c"],
      9             3: ["d", "e", "f"],
     10             4: ["g", "h", "i"],
     11             5: ["j", "k", "l"],
     12             6: ["m", "n", "o"],
     13             7: ["p", "q", "r", "s"],
     14             8: ["t", "u", "v"],
     15             9: ["w", "x", "y", "z"],
     16         }
     17         opts = options([], lookup, digits, 0)
     18 
     19         final_res = ["".join(opt) for opt in opts]
     20 
     21         return final_res
     22 
     23 
     24 def options(current, lookup, digits, index):
     25     if index >= len(digits):
     26         return [current]
     27 
     28     current_opts = lookup[int(digits[index])]
     29     ret_ls = []
     30 
     31     for opt in current_opts:
     32         ls_cp = current.copy()
     33         ls_cp.append(opt)
     34         results = options(ls_cp, lookup, digits, index + 1)
     35         for result in results:
     36             ret_ls.append(result)
     37     return ret_ls