给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
输入:digits = "" 输出:[]
示例 3:
输入:digits = "2" 输出:["a","b","c"]
提示:
0 <= digits.length <= 4
digits[i]
是范围['2', '9']
的一个数字。-
public class Solution { List<string> res; Dictionary<char,string> dic; public IList<string> LetterCombinations(string digits) { res = new List<string>(); dic = new Dictionary<char,string>(); dic.Add('2', "abc"); dic.Add('3', "def"); dic.Add('4', "ghi"); dic.Add('5', "jkl"); dic.Add('6', "mno"); dic.Add('7', "pqrs"); dic.Add('8', "tuv"); dic.Add('9', "wxyz"); AAA(0,"",digits); return res; } public void AAA(int index,string str,string dig){ if(str.Length == dig.Length){ if(str == "") return; res.Add(str); return; } string sss = dic[dig[index]]; for(int i = 0; i< sss.Length;i++){ str += sss[i]; AAA(index + 1,str,dig); str = str.Remove(str.Length - 1); } } }