首页 > 代码库 > [LeetCode] Letter Combinations of a Phone Number 回溯
[LeetCode] Letter Combinations of a Phone Number 回溯
Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
这题其实不难,注意好递归传入的参数便可以了。
#include <vector>#include <string>#include <iostream>using namespace std;class Solution {public: vector<string> letterCombinations(string digits) { ret.clear(); if(digits.size()<=0) ret.push_back(""); else help_f(0,digits,""); return ret; } vector<string> ret; vector<vector<char> >mp{{‘ ‘}, {}, {‘a‘,‘b‘,‘c‘}, {‘d‘,‘e‘,‘f‘}, {‘g‘,‘h‘,‘i‘}, {‘j‘,‘k‘,‘l‘}, {‘m‘,‘n‘,‘o‘}, {‘p‘,‘q‘,‘r‘,‘s‘}, {‘t‘,‘u‘,‘v‘}, {‘w‘,‘x‘,‘y‘,‘z‘}}; void help_f(int nowIdx,string & digits,string curStr) { if(nowIdx==digits.size()){ ret.push_back(curStr); return ; } int curNum = int(digits[nowIdx] - ‘0‘); for(int i =0;i<mp[curNum].size();i++) help_f(nowIdx+1,digits,curStr+mp[curNum][i]); }};int main(){ Solution sol; vector<string> ret=sol.letterCombinations(""); for(int i=0;i<ret.size();i++) cout<<ret[i]<<endl; return 0;}
[LeetCode] Letter Combinations of a Phone Number 回溯
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。