口碑好的天津网站建设,wordpress 授权协议,建设电影网站如何盈利,为什么大公司不用uniapp题目#xff1a;
输入数字字符串, 输出这串字符对应的九键输入法有可能出现的所有情况 算法#xff1a;
定义了一个全局变量 g_numStr#xff0c;其中存储了每个数字对应的字母。定义了一个递归函数 str_combine#xff0c;用于将每个数字对应的字母进行组合。str_combin…题目
输入数字字符串, 输出这串字符对应的九键输入法有可能出现的所有情况 算法
定义了一个全局变量 g_numStr其中存储了每个数字对应的字母。定义了一个递归函数 str_combine用于将每个数字对应的字母进行组合。str_combine 函数接受四个参数digits 表示输入的数字字符串i 表示当前处理的数字在 digits 中的下标vCombine 表示存储所有字母组合结果的 vectortmp 表示当前已经组合好的字母。当 i 的值等于 digits 的长度时说明所有数字已经被处理完将当前的组合结果 tmp 存入 vCombine 中并返回。在 for 循环中枚举当前数字对应的所有字母对每个字母进行递归处理。在递归调用中将当前字母加入到 tmp 中将 i 加一继续处理下一个数字。在 main 函数中先读入输入的数字字符串然后调用 letter_comvibinations 函数获取所有字母组合结果并将结果输出到屏幕上。 源码
#include iostream
#include vector
#include string
using namespace std;vectorstring g_numStr { , , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz };void str_combine(string digits, int i, vectorstring vCombine, string tmp)
{if (i digits.size()){vCombine.push_back(tmp);return;}for (auto ch : g_numStr[digits[i] - 0]){str_combine(digits, i 1, vCombine, tmp ch);}
}vectorstring letter_comvibinations(string digits)
{vectorstring vCombine;str_combine(digits, 0, vCombine, );return vCombine;
}int main()
{string digits;cin digits;vectorstring vCombine letter_comvibinations(digits);for (auto e : vCombine){cout e ;}cout endl;return 0;
}