• Leetcode: Letter Combinations of a Phone Number


    简单DFS

    总结

    第一次提交忘了 clear 向量

    digits[i]-'0'-2 这种写法 work

     1 #include <iostream>
     2 #include <vector>
     3 #include <string>
     4 using namespace std;
     5 vector<vector<char> >phone;
     6 vector<string> result;
     7 class Solution {
     8 public:
     9     void init() {
    10         int count = 0;
    11         for(int i = 1; i <= 8; i ++) {
    12             vector<char> tmp;
    13             for(int j = 0; j < 3; j ++) {
    14                 tmp.push_back('a'+count);
    15                 count++;
    16             }
    17             if(i == 6 || i == 8) {
    18                 tmp.push_back('a'+count);
    19                 count++;
    20             }
    21             phone.push_back(tmp);
    22         }
    23     }
    24     void proceeds(string digits, const int &i, const int &n, string partial) {
    25         if(i == n) {
    26             result.push_back(partial);
    27             return;
    28         }
    29         //cout << digits[i]-'0'-2 << endl;
    30         for(int j = 0; j < phone[digits[i]-'0'-2].size(); j ++) {
    31             proceeds(digits, i+1, n, partial+ phone[digits[i]-'0'-2][j]);
    32         }
    33 
    34     }
    35     vector<string> letterCombinations(string digits) {
    36         result.clear();
    37         phone.clear();
    38         init();
    39         proceeds(digits, 0, digits.size(), "");
    40         return result;
    41     }
    42 };
  • 相关阅读:
    2020 CCF CSP-J2(表达式)
    PSP总结报告
    第十三周例行报告
    对团队成员公开感谢博客
    作业要求 20181127-1 附加作业 软件工程原则的应用实例分析
    第十二周例行报告
    第十一周例行报告
    第十周例行报告
    第八周例行报告
    第七周例行报告
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3428206.html
Copyright © 2020-2023  润新知