这题目的描述有点不清楚,这里放一张图就懂题意了:
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string.h>
#include<iostream>
#include<set>
#include<queue>
#define ll long long
using namespace std;
char q[105];
int i=0;
int dfs()
{
int cnt=0;
int maxx=0;
int len=strlen(q);
while(i<len)
{
if(q[i]=='(')
{
i++;
cnt+=dfs();
}
else if(q[i]=='x')
{
cnt++;
i++;
}
else if(q[i]=='|')
{
maxx=max(maxx,cnt);
cnt=0;
i++;
}
else if(q[i]==')')
{
i++;
break;
}
}
return max(cnt,maxx);
}
int main()
{
scanf("%s",q);
int ans=dfs();
printf("%d\n",ans);
}