#include<bits/stdc++.h>
using namespace std;
string s;
bool type,lxp,ck[6];
int sum,lx[6],mx[6];
queue<int> q;
int main()
{
cin>>s>>type;
for(size_t cur=0;cur<s.size();cur++)
{
char i=s[cur];
if(i==39)
continue;
if(i=='(')
{
lxp=true;
continue;
}
else if(i==')'&&lxp)
{
if(s[cur+1]!='(')
lxp=false;
while(!q.empty())
{
ck[q.front()]=true;
lx[q.front()]++;
q.pop();
}
for(int j=1;j<=4;j++)
if(!ck[j])
{
mx[j]=max(mx[j],lx[j]);
lx[j]=0;
}
sum++;
}
else if(!lxp)
sum++;
fill(ck+1,ck+4,false);
switch(i)
{
case 'L':
if(s[cur+1]==39)
{
if(lxp)
q.push(2);
else
ck[2]=true;
}
else
{
if(lxp)
q.push(1);
else
ck[1]=true;
}
break;
case 'R':
if(s[cur+1]==39)
{
if(lxp)
q.push(4);
else
ck[4]=true;
}
else
{
if(lxp)
q.push(3);
else
ck[3]=true;
}
break;
}
if(!lxp)
{
for(int j=1;j<=4;j++)
if(ck[j])
lx[j]++;
else
{
mx[j]=max(mx[j],lx[j]);
lx[j]=0;
}
}
}
cout<<sum<<'\n';
if(type)
{
for(int i=1;i<=4;i++)
cout<<mx[i]<<' ';
}
return 0;
}
据调试,这份代码无法记录右手中指的最大连续敲击拍数(即对于任何数据,其记录都为0)
(这题不是橙题吗怎么这么离谱