当前位置 : 主页 > 手机开发 > harmonyos >

HDU 5479(栈的应用)

来源:互联网 收集:自由互联 发布时间:2023-08-28
Scaena Felix Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 426Accepted Submission(s): 186 Problem Description Given a parentheses sequence consist of '(' and ')', a modify can filp a pa


Scaena Felix



Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)


Total Submission(s): 426    Accepted Submission(s): 186




Problem Description


Given a parentheses sequence consist of '(' and ')', a modify can filp a parentheses, changing '(' to ')' or ')' to '('.

If we want every not empty <b>substring</b> of this parentheses sequence not to be "paren-matching", how many times at least to modify this parentheses sequence?

For example, "()","(())","()()" are "paren-matching" strings, but "((", ")(", "((()" are not.


 



Input


T, meaning that there are  T test cases.

Every test cases contains a parentheses sequence  S only consists of '(' and ')'.

1≤|S|≤1,000.


 



Output


For every test case output the least number of modification.


 



Sample Input


3 () (((( (())


 



Sample Output


1 0 2


 


//判断()的个数行


// 利用栈的先进后出的特点模拟


#include <stdio.h>
#include <string.h>
#include <stack>
using namespace std;
char str[1000+10];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        getchar();
        scanf("%s",str);
        stack <char> s;
        int len=strlen(str);
        int cnt=0;
        for(int i=0;i<len;i++)
        {
            if(str[i]=='(')
                s.push(str[i]);
            else if(str[i]==')')
            {
                if(!s.empty())  //判断是否为空
                {
                    s.pop();
                    cnt++;
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}





上一篇:HDU 5461
下一篇:没有了
网友评论