您的位置:首页 > 编程语言

《编程之美》电话号码对应字母组合问题

2013-10-11 15:49 232 查看
这几天看到网上《编程之美》电话号码对应字母组合的问题,自己试着写了一个。暴力循环,并且肯定不是最优算法,仅为各位像我一样的菜鸟程序员提供一些思路。

package Classic;

import java.util.ArrayList;

import java.util.List;

public class PhoneStr {

//键盘对应字母数组

public static String[][] PHONE_NUM = {{""},{""},{"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"}};

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String phoneNum = "243";

List<String> list = getWords(phoneNum);

for (String string : list) {

if(string.length() == phoneNum.length()){

System.out.println(string);

}

}

}

private static List getWords(String phoneNum){

List list = new ArrayList();

for (int i = 0; i < phoneNum.length(); i++) {

int key = Integer.parseInt(phoneNum.substring(i, i+1));

String[] word = PHONE_NUM[key];

if(list.size()==0){

for (int j = 0; j < word.length; j++) {

list.add(word[j]);

}

}else{

int num = list.size();

for (int j = 0; j < num; j++) {

for (int k = 0; k < word.length; k++) {

list.add(list.get(j)+word[k]);

}

}

}

}

return list;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: