yyjw14 @ 2023-08-23 13:00:28
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,k;
string s;
cin>>s;
for(i=0;i<s.size();i++)
{
if(s[i]=='(')
{
if(s[i+1]!=')')
{
cout<<"()";
}
else
{
cout<<"()";
i++;
}
}
else if(s[i]==')')
{
cout<<"()";
}
else if(s[i]=='[')
{
if(s[i+1]!=']')
{
cout<<"[]";
}
else
{
cout<<"[]";
i++;
}
}
else if(s[i]==']')
{
cout<<"[]";
}
}
return 0;
}
by __yun__ @ 2023-08-23 13:06:24
@csp_sgxx hack:([])
by jpy111 @ 2023-08-23 13:13:39
要先扫一遍字符串,看有无已经匹配的括号序列
如(([]) 已经有一对小括号和一对中扩号匹配了, 则不必再挨个进行补充。
从右往左进行对多余的括号匹配即可
所以答案应为()([]) 而你的程序为()()[]()
即进行两边循环 加个判断数组即可