zoukankan      html  css  js  c++  java
  • #282(div2) C. Treasure

    题意:#可以变换成>=1个')',问每个#可以变换成多少个')'。使得整个字符串正常,否则输出-1。

    思路:我们可以先把可以消掉的()消掉,再判断下比如#在新的字符串最前面或者(在最后面是不行的,然后我们让前面的#都变成一个),那么最后一个可以变成剩下的。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int b[100005];
     5 int main(){
     6     string s;
     7     cin>>s;
     8     int l=0;
     9     if(s[l]==')'||s[s.size()-1]=='(') {
    10         cout<<-1<<endl;return 0;
    11     }
    12     int s1=0,s2=0,s3=0;
    13     for(int i=0;i<s.size();i++){
    14         if(s[i]=='(') {
    15             b[l++]=i;
    16             s1++;
    17         }
    18         else if(s[i]==')') {
    19                 s2++;
    20                 l--;
    21                 if(l==-1) {
    22                     printf("-1
    ");return 0;
    23                 }
    24                 s[b[l]]='%';s[i]='%';s3++;
    25         }
    26     }
    27     int s4=s.size()-s1-s2;
    28     s1-=s3;
    29     if(s1<s4){
    30         cout<<-1<<endl;return 0;
    31     }
    32     int sum=0;
    33     for(int i=s.size();i>=0;i--){
    34         if(s[i]=='(') {
    35             cout<<-1<<endl;return 0;
    36         }
    37         else if(s[i]=='#') {
    38                 l=i;
    39                 break;
    40         }
    41     }
    42     for(int i=0;i<s.size();i++){
    43         if(s[i]=='(') {
    44             break;
    45         }
    46         else if(s[i]=='#') {
    47                cout<<-1<<endl;return 0;
    48         }
    49     }
    50     for(int i=0;i<s.size();i++){
    51             if(s[i]=='(') sum++;
    52             else if(s[i]=='#'){
    53                     if(i!=l)
    54                    cout<<1<<endl;
    55                     else
    56                     {
    57                         cout<<sum<<endl;break;
    58                     }
    59                    sum--;
    60             }
    61     }
    62 }
  • 相关阅读:
    Python之字典
    Python之模块
    Python之字符串格式化
    结束循环
    循环
    C语言static和局部变量
    C static extern和全局变量
    extern static和函数
    C语言typedef
    C语言之文件包含
  • 原文地址:https://www.cnblogs.com/hhxj/p/6986661.html
Copyright © 2011-2022 走看看