题意理解
输入2到9数组组成的字符串,长度不限,每个数字对应几个字母,问不同的数字串对应的字母串的情况
问题分析
用回溯法。
设计回溯函数,状态空间是
基本项是数字串为空,字母串为空
归纳项是前i个字符,前i-1个字符的字母串列表加上最后一个字符的对应的字母
其他
递归设计要点,写出递归定义,由基本项和归纳项两部分组成
基本项描述了一个或几个递归过程的终结状态;
归纳项描述了如何实现从当前状态到终结状态的转化。
回溯法的函数生成有点复杂。https://leetcode.com/articles/letter-combinations-of-a-phone-number/
链接
vector<string> letterCombinations(string digits) {
map<string,string> dicts;
dicts["2"] = "abc";
dicts["3"] = "def";
dicts["4"] = "ghi";
dicts["5"] = "jkl";
dicts["6"] = "mno";
dicts["7"] = "pqrs";