/*
* Leetcode17. Letter Combinations of a Phone Number
* Funtion: 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.
* Example:
Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
* Author: LKJ
* Date:2016/7/28
* Hint:
*/
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
class Solution {
public:
vector<string> letterCombinations(string digits) {
string nummap[10] = {" ","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> ans;
if(digits == "")return ans;
ans.push_back("");
for(int i = 0; i < digits.size(); i++){
int num = digits[i]-'0';
int len = ans.size();
for(int j = 0; j < len; j++){
string temp = ans[0];
ans.erase(ans.begin());
for(int k = 0; k < nummap[num].size(); k++){
ans.push_back(temp+nummap[num][k]);
}
}
}
return ans;
}
};
int main(){
string myin;
vector<string> myout;
Solution SA;
cout << "Please Enter" << endl;
cin >> myin;
myout = SA.letterCombinations(myin);
cout<<"VecOUT:"<<endl;
for(vector<string>::iterator it = myout.begin() ;it!=myout.end();it++){
cout<<*it<<" ";
}
cout<<endl;
return 0;
}
LeetCode 简单操作 | 17. Letter Combinations of a Phone Number
最新推荐文章于 2022-04-25 11:56:55 发布