题目介绍
难度: 中等
算法:递归
题目
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:“23”
输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
电话键对应字母如下:
1 2:abc 3:def
4:ghi 5:jkl 6:mno
7:pqrs 8:tuv 9:wxyz
算法解析
递归:定义就不必多说了,干这行的应该都知道,不知道的度娘一下。
重点说一下递归函数三要素:
- 确定函数的功能及输入输出
- 找出结束递归的条件,即递归结束返回的起点
- 找到函数的等价关系,即继续调用函数的表达式
举个例子,斐波那契数列
- 确定函数功能:求斐波那契数列第n项的值
def f(n) :
- 找出结束递归的条件:先考虑特殊情况f(1)=f(2)=1
def f(n) :
if (n <= 2)
return 1
- 找出函数的等价关系:根据斐波那契数列的规律,f(n) = f(