首页 > 其他 > 详细

回溯与递归

时间:2021-03-18 14:15:57      阅读:30      评论:0      收藏:0      [点我收藏+]
  1. map<char, string>my_map;
     void backTrack(vector<string>&combinations,string digits, int index,string &combination) {
        if (index == digits.size()) {
            combinations.push_back(combination);
        }
        string letters = my_map[digits[index]];
        for (int i = 0; i < letters.size(); i++) {
            combination.push_back(letters[i]);
            backTrack(combinations, digits, index + 1, combination);
            combination.pop_back();
        }
    }
    vector<string> letterCombinations(string digits) {
        my_map.insert(pair<char, string>(2, "abc"));
        my_map.insert(pair<char, string>(3, "def"));
        my_map.insert(pair<char, string>(4, "ghi"));
        my_map.insert(pair<char, string>(5, "jkl"));
        my_map.insert(pair<char, string>(6, "mno"));
        my_map.insert(pair<char, string>(7, "pqrs"));
        my_map.insert(pair<char, string>(8, "tuv"));
        my_map.insert(pair<char, string>(9, "wxyz"));
        vector<string>combinations;
        if (digits.empty()) {
            return combinations;
        }
        string combination;
        backTrack(combinations,digits, 0, combination);
        for (int i = 0; i < combinations.size(); i++) {
            cout << combinations[i] << endl;
        }
        return combinations;
    }

     

回溯与递归

原文:https://www.cnblogs.com/lixiangfu/p/14554616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!