js---用*列印三角形,正方形,長方形,菱形
阿新 • • 發佈:2021-01-19
技術標籤:刷題
難度:中等。
標籤:深度優先搜尋,回溯演算法,遞迴、字串。
正確解法:
class Solution {
map<char, string> phone = {
{'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"},
{'7', "pqrs"}, {'8', "tuv"}, {'9' , "wxyz"}};
void DFS(string digits, vector<string>& result, string res){
int index = res.length();
if(digits.length() == res.length()){
result.push_back(res);
return;
}
string letters = phone[digits[index]];
for (int i = 0; i < letters.length(); i++){
res.push_back(letters[i]);
DFS(digits, result, res);
res.pop_back();
}
}
public:
vector<string> letterCombinations(string digits) {
int num = digits.length();
vector<string> result;
if(num == 0)return result;
string res = "";
DFS(digits, result, res);
return result;
}
};