leetcode 17. 电话号码的字母组合

2023.7.18

leetcode 17. 电话号码的字母组合_第1张图片

         该题也是经典回溯题。 与之前做的组合有两点不同:

  • 之前的组合题是求同一集合的组合,而本题是求不同集合的组合。
  • 本题还需要有一个将字符串数字转换为手机号9键对应字符集的过程。

        下面上代码:

class Solution {
public:
    string letter_map[10] = {
        "",
        "",
        "abc",
        "def",
        "ghi",
        "jkl",
        "mno",
        "pqrs",
        "tuv",
        "wxyz"
    };
    vector ans;
    string path;
    void backtrating(string digits,int index)
    {
        //中止条件
        if(index == digits.size())
        {
            ans.push_back(path);
            return;
        }

        //将对应string型数字转换为int型
        int digit = digits[index]-'0';
        //取出该数字对应的字符集
        string letters = letter_map[digit];

        for(int i=0; i letterCombinations(string digits) {
        if(digits.size() == 0) return {};
        backtrating(digits,0);
        return ans;
    }
};

        如果面试中的话要注意判断异常输入的情况,即可能输入为#、0、1等异常情况。

你可能感兴趣的:(leetcode专栏,leetcode,算法,职场和发展,数据结构,c++)