我怎麼也沒想到,他還能打一樣的。
當事人考慮到了2,寫的錯誤**:(主要思想還是填坑)
int flag_num[
200]=;
int flag_char[
200]=;
vector
lettercombinations
(string digits)
void
dfs(string digits,vector
& ans,
int p)
for(
int i=p;i
size()
;i++)}
flag_num[digits[i]
-'0']=
0;}}
}
這個題和之前自己想的有點不一樣。
乙個是有後效性(比如 n的全排列問題),乙個沒有(本題)。
從圖上看,乙個是分支不斷減少,另乙個是分支同等。
上面的是自己寫出來的(所以程式也要模擬這個過程),下面的是客觀存在的。
改變自己錯誤的**,把乙個迴圈換成了函式引數,同時把flag去掉了。
因為從圖上看,這不就成了遍歷一棵滿n叉樹了嗎?遍歷一棵樹還需要標記走過了嗎?
vector
lettercombinations
(string digits)
void
dfs(string digits,vector
& ans,
int i)
for(
int j=0-
'0']
.size()
; j++
)//數字i裡面有幾個字母
}
Leetcode17 電話號碼組合
leetcode17 號碼組合 給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 思路 大家都能想到,我每次從裡面選擇乙個數,然後把所有的可能...
17 電話號碼的字母組合
給定乙個數字字串,返回數字所有可能表示的字母組合。下面給出數字到字母的對映 和 號碼一樣 輸入 數字字串 23 輸出 ad ae af bd be bf cd ce cf 思路1 採用迭代的方法。class solution if digits.empty return vector vectorr...
17 電話號碼的字母組合
1.遞迴 class solution object deflettercombinations self,digits type digits str rtype list str 建立字母對應的字元列表的字典 dic 儲存結果的陣列 ret str iflen digits 0 return 遞...