首页 > 代码库 > 17. Letter Combinations of a Phone Number
17. Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
public IList<string> LetterCombinations(string digits) { string[] dic = new string[]{"0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; IList<string> result = new List<string>(); if(digits.Length == 0) return result; result.Add(""); for(int i =0; i< digits.Length;i++) { IList<string> temp = new List<string>(); string digit = dic[digits[i]-‘0‘]; for(int j = 0;j< digit.Length ;j++) { for(int m = 0; m< result.Count();m++) { temp.Add(result[m] + digit[j]); } } result = temp; } return result; }
或者用recursive的方法。
public IList<string> LetterCombinations(string digits) { var res = new List<string>(); var cur = new List<char>(); if(digits =="") return res; var dic = new Dictionary<char,List<char>>(); dic.Add(‘2‘,new List<char>{‘a‘,‘b‘,‘c‘}); dic.Add(‘3‘,new List<char>{‘d‘,‘e‘,‘f‘}); dic.Add(‘4‘,new List<char>{‘g‘,‘h‘,‘i‘}); dic.Add(‘5‘,new List<char>{‘j‘,‘k‘,‘l‘}); dic.Add(‘6‘,new List<char>{‘m‘,‘n‘,‘o‘}); dic.Add(‘7‘,new List<char>{‘p‘,‘q‘,‘r‘,‘s‘}); dic.Add(‘8‘,new List<char>{‘t‘,‘u‘,‘v‘}); dic.Add(‘9‘,new List<char>{‘w‘,‘x‘,‘y‘,‘z‘}); BackTracking(digits,0,res,cur,dic); return res; } private void BackTracking(string digits,int index, IList<string> res, List<char> cur, Dictionary<char,List<char>> dic) { if(index >= digits.Count()) { res.Add(new string(cur.ToArray())); } else { foreach( char c in dic[digits[index]]) { cur.Add(c); BackTracking(digits,index+1,res,cur,dic); cur.RemoveAt(cur.Count()-1); } } }
17. Letter Combinations of a Phone Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。