本文主要是介绍【LeetCode算法练习(C++)】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”].
链接:Letter Combinations of a Phone Number
解法:暴力循环。时间O(n^m)
class Solution {
public:vector<string> letterCombinations(string digits) {vector<string> bot;vector<string> ans;vector<string> tmp;bot.push_back("");bot.push_back("");bot.push_back("abc");bot.push_back("def");bot.push_back("ghi");bot.push_back("jkl");bot.push_back("mno");bot.push_back("pqrs");bot.push_back("tuv");bot.push_back("wxyz");for (int i = 0; i < bot[digits[0] - '0'].size(); i++) {char c = bot[digits[0] - '0'][i];string str;stringstream stream;stream << c;str = stream.str();ans.push_back(str);}for (int i = 1; i < digits.length(); i++) {tmp = ans;ans.clear();for (int k = 0; k < tmp.size(); k++) {for (int j = 0; j < bot[digits[i] - '0'].size(); j++) {ans.push_back(tmp[k] + bot[digits[i] - '0'][j]);}}}return ans;}
};
Runtime: 3 ms
这篇关于【LeetCode算法练习(C++)】Letter Combinations of a Phone Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!