很巧妙的一题dfs
之前写dfs自己一定要用参数 如位置 步数等
这题用参数反而写不出来 不用参数更加容易理解
#include<bits/stdc++.h>
using namespace std;
string s;
int k;
int dfs()
{
int res = 0;
while (k < s.size()) {
if (s[k] == '(') {
k++;//跳过(
res+=dfs();
k++;//跳过 )
}
else if (s[k] == '|') {
k++;//跳过 |
res = max(res, dfs());
}
else if (s[k] == ')') {
return res;
}
else {
res++;
k++;
}
}
return res;
}
int main()
{
cin >> s;
cout << dfs() << endl;
return 0;
}