zoukankan      html  css  js  c++  java
  • 九度OJ 1342:寻找最长合法括号序列II (DP)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:898

    解决:366

    题目描述:
    假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即最长的合法括号序列。
    输入:
    测试数据包括多个,每个测试数据只有一行,即一个随机的括号序列,该括号序列的长度保证不超过106
    输出:
    对于每个测试案例,输出一个整数,表示最后剩下的最长合法括号序列长度。
    样例输入:
    (())()
    (()
    样例输出:
    6
    2

    思路:

    这个题比1337题简单多了。

    计数左括号数目left,遇到左括号则加,右括号则减(left为0则不需要处理)。

    右括号减说明遇到了一对括号匹配,count+=2。

    最后count就是所求。


    代码:

    #include <stdio.h>
     
    #define N 1000000
     
    int main(void)
    {
        int i;
        char s[N+1];
        int left, count;
     
        while (scanf("%s", s) != EOF)
        {
            left = count = 0;
            for(i=0; s[i]; i++)
            {
                if (s[i] == '(')
                    left ++;
                else if (left > 0)
                {
                    left --;
                    count += 2;
                }
            }
            printf("%d
    ", count);
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1342
        User: liangrx06
        Language: C
        Result: Accepted
        Time:30 ms
        Memory:1820 kb
    ****************************************************************/


  • 相关阅读:
    分页插件PageHelper
    持久层的具体实现
    SSM框架搭建
    mysql库中建立存储过程
    安装python2.7
    Spark应用程序第三方jar文件依赖解决方案
    spark2.0.1源码编译
    Hadoop2.7.3源码编译
    Hadoop2.x伪分布式环境搭建(一)
    Linux基础环境的各项配置(三)
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083791.html
Copyright © 2011-2022 走看看