56pts求调

P1241 括号序列

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

要先扫一遍字符串,看有无已经匹配的括号序列

如(([]) 已经有一对小括号和一对中扩号匹配了, 则不必再挨个进行补充。

从右往左进行对多余的括号匹配即可

所以答案应为()([]) 而你的程序为()()[]()

即进行两边循环 加个判断数组即可


|