2019年3月3日 星期日

[leetcode][python]17. Letter Combinations of a Phone Number

這題做法很簡單,
使用遞迴的方式,將目前所有的組合上加上下一個數字可能產生的所有字元



舉例來說




input: 23

result 代表所有可能的組合,一開始為空 <==  result=[]

看到第一個數字為2,可能得字元為a/b/c, 由於result=[],所以將a/b/c放入result內
result=[a,b,c]

再來看到下一個數字為3,可能的字元為d/e/f,由於result!=[],因此將其內容與d/e/f做結合
a-> ad,ae,af
b->bd,be,bf
c->cd,ce,cf
result=[ad,ae,af,bd,be,bf,cd,ce,cf]

由於input已經處理完,目前的result即為所有可能的排列組合




結果執行時間32ms, 超過100%的提交

source code:
https://github.com/cy-arduino/leetcode/blob/master/17.%20Letter%20Combinations%20of%20a%20Phone%20Number.py

沒有留言:

張貼留言