Leetcode-17. Letter Combinations of a Phone Number
C# 版本 (DFS backtracking)
// An highlighted block
public class Solution {
private List<List<String>> d = new List<List<String>>{
new List<String> {" "},
new List<String> {},
new List<String> {"a","b","c"},
new List<String> {"d","e","f"},
new List<String> {"g", "h", "i"},
new List<String> {"j", "k", "l"},
new List<String> {"m", "n", "o"},
new List<String> {"p", "q", "r", "s"},
new List<String> {"t", "u", "v"},
new List<String> {"w", "x", "y", "z"},
};
public IList<string> LetterCombinations(string digits) {
List<string> ans = new List<string>();
if (digits == null || digits == String.Empty)
{
return ans;
}
string cur = string.Empty;
dfs(digits, 0, cur, ans);
return ans;
}
private void dfs(string digits, int l, string cur, List<string> ans)
{
if (l == digits.Length)
{
ans.Add(cur);
return;
}
foreach (var c in d[digits[l] - '0'])
{
cur += c;
dfs(digits, l + 1, cur, ans);
cur = cur.Remove(cur.Length - 1, 1);
}
}
}
胡乱涂鸦,如有雷同,纯属缘分