当前位置:  开发笔记 > 编程语言 > 正文

算法问题:字母组合

如何解决《算法问题:字母组合》经验,为你挑选了1个好方法。

我正在尝试编写一段代码来执行以下操作:

取数字0到9并为此数字指定一个或多个字母.例如:

0 = N,
1 = L,
2 = T,
3 = D,
4 = R,
5 = V or F,
6 = B or P,
7 = Z,
8 = H or CH or J,
9 = G

当我有像0123这样的代码时,对它进行编码是一件容易的事.它显然会构成代码NLTD.当引入像5,6或8这样的数字时,情况会有所不同.像051这样的数字会导致多种可能性:

NVL和NFL

很明显,对于包含5,6或8等几个数字的较长数字,这甚至会变得"更糟".

由于在数学方面非常糟糕,我还没有能够提出一个像样的解决方案,这个解决方案可以让我为程序提供一堆数字并让它吐出所有可能的字母组合.所以我会喜欢它的一些帮助,因为我似乎无法弄明白.挖出一些关于排列和组合的信息,但没有运气.

感谢您的任何建议/线索.我需要编写代码的语言是PHP,但任何一般提示都将受到高度赞赏.

更新:

更多背景知识:(非常感谢快速回复!)

我的问题背后的想法是构建一个脚本,帮助人们轻松地将他们想要记住的数字转换为更容易记住的单词.这有时被称为"伪数字学".

我希望脚本能够为我提供所有可能的组合,然后根据剥离的单词数据库进行组合.这些被删除的单词来自字典,并且我在我的问题中提到的所有字母都被删除了.这样,要编码的数字通常可以容易地与一个或多个数据库记录相关.当这种情况发生时,您最终会得到一个单词列表,您可以使用这些单词来记住您想要记住的数字.



1> David Pierre..:

它可以很容易地递归完成.

想法是要处理大小为n的整个代码,首先必须处理n - 1位数.一旦你得到了n-1个数字的所有答案,就可以通过向它们附加最后一个字符的正确字符来推断出整个答案.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有