电话号码对应英语单词

原创 2016年06月01日 16:50:59

题目描述:



实现代码:

public class RecursiveSearch {
	static char c[][] = {          // 该数组表示0~9分表表示的字母

			{ 0 }, // 0           0表示空字符
			{ 0 }, // 1
			{ 'A', 'B', 'C' }, // 2
			{ 'D', 'E', 'F' }, // 3
			{ 'G', 'H', 'I' }, // 4
			{ 'J', 'K', 'L' }, // 5

			{ 'M', 'N', 'O' }, // 6
			{ 'P', 'Q', 'R', 'S' }, // 7
			{ 'T', 'U', 'V' }, // 8
			{ 'W', 'X', 'Y', 'Z' } // 9
	};
	static int total[] = { 0, 0, 3, 3, 3, 3, 3, 4, 3, 4 };    //分别表示0~9所代表的字符的个数

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int number[] = { 2, 3, 4 };          //假设电话号码为234,number[i]表示二维数组中的行值
		int n = number.length;
		int answer[] = new int[n];           //answer[i]表示二维数组c[i]中的列值
		// 综上所述,当 answer[0]=2时  c[number[0]] [answer[0]]= c[2][2]='C'
		recursiveSearch(number, answer, 0, n);
	}

	private static void recursiveSearch(int[] number, int[] answer, int index, int n) {
		// TODO Auto-generated method stub
		if (index == n) {

			for (int i = 0; i < n; i++) {
				System.out.printf("%c", c[number[i]][answer[i]]);
			}
			System.out.println();
			return;
		}

		for (answer[index] = 0; answer[index] < total[number[index]]; answer[index]++) {
			recursiveSearch(number, answer, index + 1, n);
		}
	}

}

测试结果:


版权声明:本文为博主原创文章,转载请注明地址。

相关文章推荐

[经典面试题][百度]电话号码对应英语单词

题目现在有一个手机,手机上的键盘上有这样的对应关系,2对应”abc”,3对应”def”…..手机里面有一个userlist用户列表,当我们输入942的时候出来拼音的对应可能是“xia”,“zha”,“...

编程之美之电话号码对应英语单词

题目一:根据电话上字母和数字的对应关系,用一个有意义的单词来表述一个电话号码,如用computer表示26678837 题目二:反过来,给定一个电话号码,是否可以用一个单词来表示呢?怎样表示最快呢?...

编程之美: 第三章 结构之法 3.2电话号码对应英语单词

/* 电话号码对应英语单词: 电话的号码盘一般可以用于输入字母。如用2可以输入A,B,C,用3可以输入D,E,F等。 对于号码5869872,可以依次输出其代表的所有字母组合。例如:JTMWTPA,J...

电话号码对应的英语单词

具体问题描述见:《编程之美》-3.2 电话号码对应英语单词,在本文中主要根据《编程之美》中的思想分别利用递归与非递归的思想实现了电话号码对应英语单词的构造实现,主要考虑了排列树的思想,利用遍历树中的每...
  • yyme411
  • yyme411
  • 2013年10月03日 16:31
  • 749

3.2 电话号码对应的英语单词

1. 前言本文的一些图片, 资料 截取自编程之美2. 问题描述3. 问题分析一个数字, 对应一个字符数组, 这个问题其实就是穷举出这个数字数组能够表示的所有的字符的拼凑, 然后找出为单词的序列 这里...

[编程之美] PSet3.2 电话号码对应英语单词

 问题描述:        对如非全键盘的手机上的数字,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,要求对一段数字,输出其代表的所有...

编程之美3.2 电话号码对应英语单词

java实现: import java.util.ArrayList; import java.util.List; public class Telphone { /** * 保存每个数...

编程之美读书笔记-电话号码对应英语单词

题目:电话的号码盘一般可以用于输入字母,如用2可以输入a,b,c,用3可以输入d,e,f等。 对于号码5869872,可以依次输出其代表的所有字母组合。如:jtmwtpa,jtmwtpb………  您能...

编程之美3.2 电话号码对应英语字母

这也是一道很常见的题目,好多类似的题目用的也是同样的解法,这道题目的意思是,我们的手机上的数字键上面对应着英文字母,那么这个数字可能对应3个,也可能对应4个,也有可能对应0个,那么,当我输入一串数字后...

编程之美--3.2电话号码对应英文单词

思路 1 对于第一个。 2 这道题目相对...
  • seawade
  • seawade
  • 2014年08月03日 21:11
  • 496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:电话号码对应英语单词
举报原因:
原因补充:

(最多只允许输入30个字)