博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
括号匹配
阅读量:4977 次
发布时间:2019-06-12

本文共 768 字,大约阅读时间需要 2 分钟。

  给你一个字符串,只含有‘(’和‘)’,然后你判断一下是否合法

Input
有多组数据,每组数据一行字符串s(|s|<=100),如题目所述
Output
如果合法则输出YES,否则输出NO。
Sample Input
(()())
)(
Sample Output
YES
NO
 
今天玩玩了西电的比赛,简单题,不过挖了好几次才过的
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char stack[110],exp[110];
int main(int argc, char *argv[])
{
    while(gets(exp))
    {
        int len=strlen(exp);                
        int top=-1,flag=1;
       if(exp[0]==')'||(len&1)) { puts("NO");continue;}
        stack[++top]=exp[0];
        for(int i=1;i<len;i++)
         if(exp[i]=='(')
           stack[++top]='(';
         else if(exp[i]==')')
           {
               if(top>-1&&stack[top]=='(') top--;
               else
               {
                    flag=0;
                    break;
               }                  
           }
         puts(flag&&top==-1?"YES":"NO");  //开始没有加判断flag==-1
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

转载于:https://www.cnblogs.com/one--world--one--dream/archive/2011/12/03/2274569.html

你可能感兴趣的文章
类对象
查看>>
[Voice communications] 声音的滤波
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
[SDOI2008]洞穴勘测
查看>>
Difference between Linearizability and Serializability
查看>>
IDEA使用操作文档
查看>>
UIView
查看>>
添加日期选择控件
查看>>
bzoj4765: 普通计算姬 (分块 && BIT)
查看>>
看完漫画秒懂区块链
查看>>
Oracle命令类别
查看>>
stc12c5a60s2驱动TEA5767收音机模块硬件调试总结
查看>>
vue中提示$index is not defined
查看>>
css选择器
查看>>
ASP.NET上传下载文件
查看>>
Galaxy Nexus 全屏显示-隐藏Navigation Bar
查看>>
Spring中使用Velocity模板
查看>>
上周热点回顾(8.18-8.24)
查看>>
Feature toggle
查看>>
day02
查看>>