g1306374356 @ 2021-07-21 07:39:22
#include<bits/stdc++.h>
using namespace std;
char a[200],c[200];
int top;
string s;
int main()
{
cin>>s;
int b=s.size();//sizeof s;
cout<<b;
for(int i=0;i<b;i++)
a[i]=s[i];
for(int i=0;i<b;i++)
{
if(a[i]=='('||a[i]=='[')
c[++top]=a[i];
if(a[i]==')'||a[i]==']')
{
for(int j=top;j>=0;j--)
{
if(a[i]==')'&&c[j]=='(')
{
cout<<c[top--]<<a[i];
//top--;
break;
}
else if(a[i]==']'&&c[j]=='[')
{
cout<<c[top--]<<a[i];
//top--;
break;
}
}
i++;
}
}
for(int i=top;i>0;i++)
{
if(c[i]=='[') cout<<'['<<']';
if(c[i]=='(') cout<<'('<<')';
}
return 0;
}
求助大佬
by djwj323 @ 2021-07-21 12:22:09
cout<<b;
...
by g1306374356 @ 2021-07-21 20:01:43
@Cstring_ 这不是主要问题,这是我在本地调试时加上的,把这一句屏蔽后依然不行(七紫五红)
by djwj323 @ 2021-07-21 22:04:21
@g1306374356
for(int i=top;i>0;i++)
{
if(c[i]=='[') cout<<'['<<']';
if(c[i]=='(') cout<<'('<<')';
}
i++?
另外这题题面本身就不清楚,建议看第二篇题解
by g1306374356 @ 2021-07-22 07:45:58
@Cstring_ 好的谢谢
by QwQ__ @ 2021-08-11 14:08:36
getline