zoukankan      html  css  js  c++  java
  • P1241 括号序列

    P1241 括号序列

    题解

    谁解释下标签递推是个什么鬼,应该是暴力

    数据比较小直接跑暴力

    但是注意题目描述

     也就是说:

     [ ( ] ) 

    是不合法的

    补全应该是 [ ] ( [ ] )

    举个栗子:

    比如在找 “ ) ” 时,先找到了一个没有 ' ] ' 匹配的 ‘ [ ’ ,也就是说明出现了上述情况,即使后面找到了没有匹配的 "(" ,也不能算 “)”匹配了QAQ

    代码

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<cstdlib>
    #include<queue>
    
    using namespace std;
    
    inline int read()
    {
        int ans=0;
        char last=' ',ch=getchar();
        while(ch<'0'||ch>'9') last=ch,ch=getchar();
        while(ch>='0'&&ch<='9') ans=ans*10+ch-'0',ch=getchar();
        if(last=='-') ans=-ans;
        return ans;
    }
    
    string s;
    bool have[200];
    
    int main()
    {
       while(cin>>s) {
           
      memset(have,0,sizeof(have));
        for(int i=0;i<s.size() ;i++)
        {
            if(s[i]==')') 
            {
                for(int j=i-1;j>=0;j--)
                {
                    if(s[j]=='['&&have[j]==0) break;
                    if(s[j]=='('&&have[j]==0) {
                        have[j]=1;
                        have[i]=1;
                        break;
                    }
                }
            }
            if(s[i]==']') 
            {
                for(int j=i-1;j>=0;j--)
                {
                    if(s[j]=='('&&have[j]==0) break;
                    if(s[j]=='['&&have[j]==0) {
                        have[j]=1;
                        have[i]=1;
                        break;
                    }
                }
            }
        }
        
        for(int i=0;i<s.size() ;i++)
        {
            if(s[i]=='('&&have[i]==0) printf("%c)",s[i]);
            else if(s[i]==')'&&have[i]==0) printf("(%c",s[i]);
            else if(s[i]=='['&&have[i]==0) printf("%c]",s[i]);
            else if(s[i]==']'&&have[i]==0) printf("[%c",s[i]);
            else printf("%c",s[i]);
        }
        printf("
    ");
         }
        return 0;
    }
  • 相关阅读:
    Fixed Table Header jQuery Plugin
    jquery实现置顶和置底特效
    HTTP_REFERER头的使用方法
    为什么使用框架?
    javascript:history的一些用法
    揭秘BYOD五大隐藏成本
    PHP中冒号、endif、endwhile、endfor使用介绍
    面对业务开拓重任,CIO们普遍显得缺乏信心
    Asp.net中的页面传值
    DropDownList的用法
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/11487055.html
Copyright © 2011-2022 走看看