国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

每日一道算法題——Letter Combinations of a Phone Number

2019-11-08 18:50:35
字體:
來源:轉載
供稿:網友

電話號碼的字母組合

題目

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.

number

Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

分析

隨機按一串數字,給出這些號碼所有可能的字符排列。 為了不產生歧義,我給出下面各個號碼代表的字符

{"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}

算法

這題用回溯法是很好寫的。直接上代碼:

public class Solution { public List<String> letterCombinations(String digits) { if(digits.length()<1) return new LinkedList<String>(); LinkedList<String> ans = new LinkedList<String>(); String[] mapping = {"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; backTrack(digits,0,"",mapping,ans); return ans; } public void backTrack(String digits,int k,String s,String[] mapping ,LinkedList<String> ans){ //結束條件 if(k>=digits.length()){ ans.add(s); return; } String c = mapping[digits.charAt(k)-'0'];//得到按鍵的值 for(int i=0;i<c.length();i++){ s+=c.charAt(i)+"";//把字符c.charAt(i)追加到末尾 backTrack(digits,k+1,s,mapping,ans);//遞歸 下一個按鍵 s = s.substring(0,s.length()-1);//恢復 } return; }}

所以一般排列問題大家都可以先想想回溯法,畢竟代碼實現是很容易的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁波市| 柘荣县| 萝北县| 庆安县| 苏州市| 老河口市| 惠州市| 中西区| 张北县| 搜索| 盐山县| 诸暨市| 惠来县| 上杭县| 陆川县| 博兴县| 江山市| 灌阳县| 泉州市| 沁源县| 南靖县| 钟祥市| 奎屯市| 新源县| 秀山| 祁连县| 朝阳县| 钟祥市| 日喀则市| 太湖县| 庆云县| 汾阳市| 阜城县| 新疆| 治县。| 邯郸市| 福安市| 天全县| 丹江口市| 平昌县| 千阳县|