思路:
每个数字对应的三个或者四个字母,输入的digits可能是几位数字组成
1.for(auto u:digits) 遍历digits中的数字,获取每一个单独的数字码
2. for(auto c:chars[ ]) 根据数字码遍历得到对应的字母
3. for(auto s:state) 对字母进行组合
4. now.push_back(s+c)
return state
代码:
class Solution { public: string chars[8]={"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; vector<string> letterCombinations(string digits) { if(digits.empty()) return vector<string>(); vector<string> state(1,""); for(auto u:digits) //遍历输入数字 { vector<string>now; for(auto c:chars[u-'2']) //遍历输入数字所对应的char { for(auto s:state) { now.push_back(s+c); } } state=now; } return state; } };
Every step of barefoot running deserves to be recorded