247. Strobogrammatic Number II


做题历程:

  1. 2016/Oct/22,本题做了不止1次了,本次独立解出,耗时13分钟

本题难度还是挺简单的。。。尤其是采用recursive的方法就更是简单了,直接上代码了,代码如下:

class Solution {
public:
    vector<string> findStrobogrammatic(int n) {
        return helper(n, 0);
    }
private:
    vector<string> helper(int n, int level) {
        vector<string> res;
        if (n == 0) {
            res.push_back("");
        }
        else if (n == 1) {
            res.push_back("0");
            res.push_back("1");
            res.push_back("8");
        }
        else {
            vector<string> tmp_res = helper(n - 2, level + 1);
            for (int i = 0; i < tmp_res.size(); ++i) {
                if (level != 0) {
                    res.push_back('0' + tmp_res[i] + '0');
                }
                res.push_back('1' + tmp_res[i] + '1');
                res.push_back('6' + tmp_res[i] + '9');
                res.push_back('8' + tmp_res[i] + '8');
                res.push_back('9' + tmp_res[i] + '6');
            }
        }
        return res;
    }
};

results matching ""

    No results matching ""