您的位置:首页 > 其它

leetcode17-根据数字找到可能的按键字母组合

2017-11-13 14:33 489 查看
/*
这个解法是比较巧妙的
*/
vector<string> letterCombinations(string digits)
{
vector<string> res;
string charmap[10] = { "0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };
res.push_back("");//此时res的size=1

//一个组合string的长度肯定小于digits.size()
for (int i = 0; i < digits.size(); i++)
{
//每次tempres都是新的,所以最后res中string都是size长度的
vector<string> tempres;
//digits[i] - '0'获得数组下标索引:0,1,2,3....
//因此chars就取得了 "abc"或者"def"或者...
string chars = charmap[digits[i] - '0'];
//动态增长的两层循环,每次循环完了,res.size会增加
for (int c = 0; c < chars.size(); c++)
for (int j = 0; j < res.size(); j++)
{
//每次为res中的每个字符串末尾添加一个新的字符
tempres.push_back( res[j] + chars[c] );
}

res = tempres;
cout << "res.size = " << res.size() << endl;
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐