nyoj 2 括号配对问题
来源:互联网 发布:战略管理书籍推荐知乎 编辑:程序博客网 时间:2024/06/05 05:19
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=2
代码:
#include<cstdio>
#include<cstdlib>
#include<string>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<ctime>
#include<stack>
using namespace std;
typedef long long ll;
void fun1(char *str)
{
int ans,left,right,left1,right1,len;
left=right=left1=right1=0;
len=strlen(str);
ans=1;
for(int i=0;i<len;i++)
{
if(str[i]=='(')
left++;
else if(str[i]==')')
right++;
else if(str[i]=='[')
left1++;
else
right1++;
}
if(strstr(str,"[)")!=0 || strstr(str,"(]")!=0 || str[0]==')' || str[0]==']')
ans=0;
if(left==right && left1==right1 && ans)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
void fun2()
{
stack<char> st;
char tt;
while(scanf("%c",&tt) && (tt!='\n'))
{
if(st.empty())
{
st.push(tt);
}
else if(tt=='(' || tt=='[')
{
st.push(tt);
}
else
{
if( (tt==')' && st.top()=='(') || (tt==']' && st.top()=='['))
{
st.pop();
}
else
{
st.push(tt);
}
}
}
if(st.empty())
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
int main()
{
int n;
scanf("%d",&n);
getchar();
char str[10090];
while(n--)
{
//方法一: 字符串搜索函数
// gets(str);
// fun1(str);
//方法二 栈模拟
fun2();
}
return 0;
}
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- NYOJ-2:括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2--括号配对问题
- nyoj-2-括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ-2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- 设计模式—状态模式
- Mac与Phy组成原理的简单分析
- 系统架构师-基础到企业应用架构-分层[上篇]
- html 大文件 断点续传
- 理解GBDT算法(三)——基于梯度的版本
- nyoj 2 括号配对问题
- url传递参数乱码
- /home被格式化后进入不了系统的解救方法
- Apache+Tomcat+AJP
- 【初探Spring】——Spring IOC(二):初始化过程—简介
- 使用fragment构建动态布局
- 一切从五子棋开始
- 上周学习总结
- 在ubuntu中gsettings的命令使用及查找到系统挂起的未活动的超时时间的值的获取方法