zoukankan      html  css  js  c++  java
  •  洛谷 P3056 [USACO12NOV]笨牛Clumsy Cows

    P3056 [USACO12NOV]笨牛Clumsy Cows

    题目描述

    Bessie the cow is trying to type a balanced string of parentheses into her new laptop, but she is sufficiently clumsy (due to her large hooves) that she keeps mis-typing characters. Please help her by computing the minimum number of characters in the string that one must reverse (e.g., changing a left parenthesis to a right parenthesis, or vice versa) so that the string would become balanced.

    There are several ways to define what it means for a string of parentheses to be "balanced". Perhaps the simplest definition is that there must be the same total number of ('s and )'s, and for any prefix of the string, there must be at least as many ('s as )'s. For example, the following strings are all balanced:

    () (()) ()(()())

    while these are not:

    )( ())( ((())))

    给出一个偶数长度的括号序列,问最少修改多少个括号可以使其平衡。

    输入输出格式

    输入格式:

     

    • Line 1: A string of parentheses of even length at most 100,000 characters.

     

    输出格式:

     

    • Line 1: A single integer giving the minimum number of parentheses that must be toggled to convert the string into a balanced string.

     

    输入输出样例

    输入样例#1: 复制
    ())( 
    
    输出样例#1: 复制
    2 
    

    说明

    The last parenthesis must be toggled, and so must one of the two middle right parentheses.

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define N 100010
    using namespace std;
    char s[N];
    int head,tail,ans;
    int main(){
        scanf("%s",s);
        head=tail=0;
        int len=strlen(s);
        for(int i=0;i<len;i++){
            if(s[i]=='(') tail++;
            else {
                if(tail>head) tail--;
                else   tail++,ans++;
            }
        }
        if(tail!=head) ans+=(tail-head)/2;
        printf("%d",ans);
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    C++ 用libcurl库进行http通讯网络编程(转)
    树莓派声音设置
    在Linux终端命令行下播放音乐的命令(Ubuntu)
    2.1 LibCurl编程流程(转)
    linux编译curl库的动态库so(转)
    单片机中断的IE和IP寄存器(摘抄)
    MCS-51系列特殊功能寄存器(摘抄)
    linux c libcurl的简单使用(转)
    普林斯顿结构 VS 哈佛结构
    树莓派(raspberry pi)学习4: 更改键盘布局(转)
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7892324.html
Copyright © 2011-2022 走看看