关闭

电话号码对应英语单词

419人阅读 评论(0) 收藏 举报
分类:

题目描述:



实现代码:

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);
		}
	}

}

测试结果:


0
0
查看评论

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

原始问题如下:手机上面的数字键均对应了几个字符,譬如2对应了a,b,c。问题是当输入一段数字后,求出所有可能的字符组合,(可以想象一下发短信时候的状况,每当按几个数字键后,均给出可能的汉语拼音,当然这个要求就更高了,本题只要求给出所有可能的组合)。 举个例子输入4,2键后,则给出GA,GB,GC,...
  • li4951
  • li4951
  • 2011-11-06 09:30
  • 1948

电话号码对应英语单词[算法]

编程之美3.2 一堆数组刚开始把我弄晕了,其实还是看代码看的不够多造成的#include #include #define TelLength 11char c[10][5] = { "", //0 "", //1 ...
  • jeiwt
  • jeiwt
  • 2009-12-09 18:50
  • 1352

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

题目:        对如非全键盘的手机上的数字,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,要求对一段数字,输出其代表的所有可能的字母组合,如5869,可能代表JTMW、JTM...
  • yeepom
  • yeepom
  • 2013-03-22 18:53
  • 596

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

问题: 电话的号码盘一般可以用于输入字母,如用2可以输入a,b,c,用3可以输入d,e,f等。 对于号码5869872,可以依次输出其代表的所有字母组合。如:jtmwtpa,jtmwtpb……… 1、您能否可以根据这样的对应关系设计一个程序,尽可能快地从这些字母组合中找到一个有意义的单词来描述...
  • zengzhen_CSDN
  • zengzhen_CSDN
  • 2015-11-02 10:22
  • 1132

电话号码对应的英语单词

具体问题描述见:《编程之美》-3.2 电话号码对应英语单词,在本文中主要根据《编程之美》中的思想分别利用递归与非递归的思想实现了电话号码对应英语单词的构造实现,主要考虑了排列树的思想,利用遍历树中的每个叶子节点来实现所有单词的集合。对应文中的查找方法正如《编程之美》中介绍的方法一样,主要根据构造的字...
  • yyme411
  • yyme411
  • 2013-10-03 16:31
  • 872

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

问题描述: 电话的号码盘上一个数字对应着几个字母,一串数字对应着几种字母的组合。 现在给定一组数字,列出对应的字母的组合。 思路: 例如:4对应键盘上 GHI, 2对应键盘上 ABC 数字 42 的组合对应的字符串,用树的表现形式:   ...
  • wangzhiyu1980
  • wangzhiyu1980
  • 2016-07-18 08:37
  • 906

3.2电话号码对应英语单词

<br />给定电话号码,输出其对应键盘代表的所有字母组合。如:给定号码5869872,输出jtmwtpa、jtmwtpb.....<br />#include <stdio.h> #include <string.h> //键盘映射 char ...
  • softdzf
  • softdzf
  • 2010-10-02 16:57
  • 491

电话号码对应英语单词

电话号码盘一般可以用于输入字母,如2可以输入A、B、C,等等。要求设计号码所对应的所有组合。如5969872可以对应:JTMWTPA、JTMWTPB等。     这就相当于排列数,如5对应J、K、L,以J、K、L各自引出9对应的W、X、Y、Z这些数字的组合就构成一棵树。...
  • xflame
  • xflame
  • 2013-08-19 16:33
  • 554

3.2 电话号码对应英语单词

原始问题如下:手机上面的数字键均对应了几个字符,譬如2对应了a,b,c。问题是当输入一段数字后,求出所有可能的字符组合 第一种方法:假设电话号码是n个数字,那么就n个for循环。 这方法果断不好 第二个方法: #include #include using namesp...
  • u010470972
  • u010470972
  • 2015-04-21 10:03
  • 508

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

之一: public class TelNumber { static int[] telen={0,0,3,3,3,3,3,4,3,4}; static int[] number={4,3,8,5}; static Integer[] num = new Integer[number.le...
  • alkq1989ha
  • alkq1989ha
  • 2014-10-14 09:55
  • 111
    个人资料
    • 访问:47350次
    • 积分:1646
    • 等级:
    • 排名:千里之外
    • 原创:120篇
    • 转载:11篇
    • 译文:0篇
    • 评论:4条
    最新评论