(java)手机键盘上字符的组合方式

来源:互联网 发布:js删除指定div 编辑:程序博客网 时间:2024/05/21 09:16

如图:将数字上字母组合。

思路:每一次将字符串数组与当前数字上字符做组合,返回一个新的字符串数组,然后再用新的字符串数组再去组合,知道所有的数字遍历完为止,过程很简单,注意开始为空的情况,和数字上字母为空的情况。

代码如下:

public static List<String> letterCombinations(String digits) {char[][] temp=new char[][]{{},{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'},{}};       int n=digits.length();       int[] d=new int[n];       for(int i=0;i<n;i++){       d[i]=Integer.parseInt(String.valueOf(digits.charAt(i)));       }       List<String> l=new ArrayList<String>();       for(int i=0;i<n;i++){      Get(l,d[i],temp);       }       return l;    }public static void Get(List<String> temp,int index,char[][] t){List<String> l=new ArrayList<String>();List<String> tt=new ArrayList<String>(temp);temp.clear();System.out.println(t[index].length);for(int i=0;i<t[index].length;i++){l.add(String.valueOf(t[index][i]));}if(tt.size()==0){for(int i=0;i<l.size();i++){temp.add(l.get(i));}}else{for(int i=0;i<tt.size();i++){for(int j=0;j<l.size();j++){temp.add(tt.get(i)+l.get(j));}}}}


0 0
原创粉丝点击