247. Strobogrammatic Number II
做题历程:
- 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;
}
};