日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java小编程----电话号码组合

發布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java小编程----电话号码组合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

僅以此文深刻理解遞歸!!!?

package com.henu.lmd;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** 電話號碼的字母組合*/ public class Demo05_力扣17官網 {public static void main(String[] args) {String digits = "239";System.out.println(letterCombinations(digits));}public static List<String> letterCombinations(String digits) {if(digits.length()==0||digits==null) return new ArrayList<String>();Map<Integer,String> map = new HashMap<>();map.put(2,"abc");map.put(3,"def");map.put(4,"ghi");map.put(5,"jkl");map.put(6,"mno");map.put(7,"pqrs");map.put(8,"tuv");map.put(9,"wxyz");return letterCombinations(digits,map);}public static List<String> letterCombinations(String digits,Map<Integer,String> map){List<String> now = new ArrayList<>();//由下方的遞歸調用函數,區分字符串最后一個數字,就以239為例,當if執行,代表此時取得是字符串最后一位//即9然后將9對應的字母組合添到list集合now中。然后讓return它的上一層函數if(digits.length() == 1){String s = map.get(Integer.parseInt(digits));for(int i=0;i<s.length();i++){now.add(""+s.charAt(i));}System.out.println(now);return now;//從被調用函數返回到主調函數中繼續執行,并非一遇到return整個遞歸結束。}//遞歸調用letterCombinations例digits=239,則(39),(9)【注】每次調用從開頭運行//然后當(9)運行結束,返回now,此時執行(39),已知(39)上面代碼不成立,則執行一下代碼。//取map(3)賦給字符串head,然后兩個for循環將now重新賦值List<String> pre = letterCombinations(digits.substring(1),map);//此時調用map(2)。再賦值。再返回主調函數(239)執行完畢結束返回now。String head = map.get(Integer.parseInt(digits.substring(0,1)));for(String s : pre){for(int j=0;j<head.length();j++){now.add(head.charAt(j)+s);} } // System.out.println(now);return now;} }

?

總結

以上是生活随笔為你收集整理的java小编程----电话号码组合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。