zoukankan      html  css  js  c++  java
  • 喵哈哈村的括号序列

    喵哈哈村的括号序列

    发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:07   时间限制: 1000ms   内存限制: 128M

    喵哈哈村的括号序列和外界的括号序列实际上是一样的。

    众所周知"()"这样的,就是一个标准的括号序列;"()()()()"这样也是括号序列;“((()))()”这样也是一个合法的括号序列。但是"((("这样,就不是一个合法的括号序列了。

    现在沈宝宝非常好奇,给你一个字符串,请从中找出最长的合法括号序列出来。

    不知道你能找到吗?

    第一行一个T,表示有T组数据。
    接下来T行,每一行都是一个字符串。
    保证字符串的长度小于100000。
    而且字符串中保证只会出现"(",")"这两种字符之一。
    1<=T<=10

    对于每一组测试数据,输出最长的合法括号序列的长度。

    复制
    2
    )((())))(()())
    )(
    6
    0
    用个stack就行了,注意一些特殊情况。
     1 #include <iostream>
     2 #include <string.h>
     3 #include <stack>
     4 #include <stdio.h>
     5 #define N 100005
     6 using namespace std;
     7 char k[N];
     8 int ans[N];
     9 int main(){
    10     int n;
    11     cin>>n;
    12     while(n--){
    13         memset(k,0,sizeof(k));
    14         memset(ans,0, sizeof(ans));
    15         cin>>k;
    16         stack<int> s;
    17         int len=strlen(k),it=0,Max=0,cnt=0;
    18         for(int i=0;i<len;i++){
    19             if(k[i]=='(')
    20                 s.push(i);
    21             if(k[i]==')'&&!s.empty()){
    22                 ans[s.top()]=1;
    23                 ans[i]=1;
    24                 s.pop();
    25             }
    26         }
    27         for(int i=0;i<len;i++){
    28             if(ans[i]==1){
    29                 cnt++;
    30             }
    31 
    32             if(cnt&&ans[i]==0){
    33                 Max=max(Max,cnt);
    34                 cnt=0;
    35             }
    36 
    37             if(i==len-1)
    38                 Max=max(Max,cnt);
    39         }
    40         cout<<Max<<endl;
    41     }
    42     return 0;
    43 }
     
  • 相关阅读:
    C# 枚举 字符串 转换
    调用程序中的资源中的图片文件
    将文件的图标添加到LISTVIEW中
    OpenFileDialog
    关于CSS的优先级,CSS优先级计算,多个class引用
    block,inline和inline-block概念和区别
    jQuery之防止冒泡事件
    OOP中的六种关系以及和JDK或框架中源码进行匹配对应
    Linux创建一个周期任务来定期删除过期的文件
    SpringBoot初探
  • 原文地址:https://www.cnblogs.com/zllwxm123/p/7525593.html
Copyright © 2011-2022 走看看