zoukankan      html  css  js  c++  java
  • CodeForces 494A Treasure(字符串匹配 思维)

    http://codeforces.com/problemset/problem/494/A

    题意 有一串字符串由 ( ) # 组成 

          #代表若干个 )

          问#具体为多少时可以使每个( 都对应一个 )

    思路 由于可以有多种方式组合

           可以默认前 cnt-1 个 #号 与它前一个 ( 匹配

           之后再对最后一个#进行特判(分别判断 #右边的num1 和左边的num2 如果num2-num1>0 则满足)

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char str[100000+100];
    int main()
    {
        int i,j,k;    
        while(scanf("%s",str)!=EOF)
        {
            int len=strlen(str);
            int ans,cnt=0,num1=0,num2=0,tcnt=0;
            int ok=1;
            for(i=0;i<len;i++)
            {
                if(str[i]=='#') cnt++;
            }
            for(i=len-1;i>=0;i--)
            {
                if(str[i]=='#') break;
                if(str[i]==')') num1++;
                else if(str[i]=='(') num1--;
                if(num1<0) {ok=0;break;}
            }
            if(ok)
            {
              for(i=0;i<len;i++)
              {
                if(str[i]=='#') tcnt++;
                if(tcnt<cnt)
                {
                    if(str[i]=='(')  num2++;                                            
                    else if(str[i]==')'||str[i]=='#')  num2--;                                                  
                }
                else
                {
                    ans=num2-num1;
                    if(ans<=0) ok=0;
                    break;
                }
                if(num2<0) {ok=0;break;}
              }
            }        
            if(ok)
            {
                for(i=0;i<cnt-1;i++) printf("1
    ");
                printf("%d
    ",ans);
            }
            else printf("-1
    ");
        }
        return 0;
    }
    View Code

           

  • 相关阅读:
    Log4Net使用
    4月博文
    论坛题目练习
    职场冷笑话两则
    初识管理的一些心得
    Project中分清楚挣值项
    预留规划项
    小感触
    好事多磨,好事成双
    忧郁
  • 原文地址:https://www.cnblogs.com/sola1994/p/4241644.html
Copyright © 2011-2022 走看看