ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

17. 电话号码的字母组合

17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = ""
输出:[]

示例 3:

输入:digits = "2"
输出:["a","b","c"]

提示:

  • 0 <= digits.length <= 4
  • digits[i] 是范围 ['2', '9'] 的一个数字。

/*** 电话号码的组合*/
const string letterMap[10] = {"", // 0"", // 1"abc", // 2"def", // 3"ghi", // 4"jkl", // 5"mno", // 6"pqrs", // 7"tuv", // 8"wxyz", // 9
};
vector<string> result;
string s;
/**** @param digits 字符串* @param index 元素的下标*/
void backtracking(const string &digits, int index) {//1.递归终止条件if (index == digits.size()) {result.push_back(s);return;}//2.将index对应的字符转换为数字int digit = digits[index] - '0';//3.获取对应的字符集string letter = letterMap[digit];for (int i = 0; i < letter.size(); ++i) {//依次添加字符s.push_back(letter[i]);//递归下一个字符backtracking(digits, index + 1);//回溯s.pop_back();}
}vector<string> letterCombinations(string digits) {if (digits.size() == 0){return result;}backtracking(digits, 0);
}

返回列表