1096. 花括号展开 II
题目链接:1096. 花括号展开 II
方法:DFS由内向外展开
解题思路
ylb:[Python3/Java/C++/Go/TypeScript] 一题一解:递归(简洁代码)
代码
class Solution {
private:
set<string> s;
void dfsBrace(string exp) {
int j = exp.find_first_of('}');
if (j == string::npos) {
s.insert(exp);
return;
}
int i = exp.rfind('{', j);
string a = exp.substr(0, i);
string c = exp.substr(j + 1);
int last, k;
for (last = i + 1, k = i + 1; k < j; k ++ ) {
if (exp[k] == ',') {
dfsBrace(a + exp.substr(last, k - last) + c);
last = k + 1;
}
}
dfsBrace(a + exp.substr(last, k - last) + c);
};
public:
vector<string> braceExpansionII(string expression) {
dfsBrace(expression);
return vector<string>(s.begin(), s.end());
}
};

浙公网安备 33010602011771号