【UVA】673 Parentheses Balance(栈处理表达式)
2024-08-27 12:02:44
题目
分析
写了个平淡无奇的栈处理表达式,在WA了5发后发现,我没处理空串,,,,(或者说鲁棒性差?
代码
#include <bits/stdc++.h>
using namespace std;
bool equal(char a,char b)
{
if((a=='(' && b==')') || (a=='[' && b==']')) return true;
return false;
}
int main()
{
int len,t;
string str;
cin>>t;cin.get();
while(t--)
{
int flag=1;
getline(cin,str);
stack<char> s;
for(int i=0;i<str.length();i++)
{
if(str[i]=='('||str[i]=='[')
{
s.push(str[i]);
continue;
}
if(s.empty())
{
flag=false;
break;
}
char x=s.top(); s.pop();
if(!equal(x,str[i]))
{
flag=false;
break;
}
}
if(!s.empty()) flag=false;
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
最新文章
- 【Apache大系】Apache服务器面面观
- C文件的格式化工具(astyle)
- Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
- 深入理解Activity-任务,回退栈,启动模式
- 使用Cydia Substrate 从Native Hook Android Native世界
- Mybatis学习(壹)
- 课程助理For Windows(预览版,正方教务系统学生查分工具)
- Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力
- 使用Python脚本获取指定格式文件列表的方法
- 【IOS开发】搜索和排序(好友列表,通讯录的实现,searchbar)
- 安装GlusterFS
- js正则表达式详解
- JAVA入门[5]-初步搭建SpringMVC站点
- Win10系列:C#应用控件进阶8
- new delate he typedef的含义
- Calendar代替Date常用方法小记
- angular 禁止缓存
- 行为型模式之Command模式
- Unity 之 如何删除Unity项目里面没用的东西??
- 使用函数式编程消除重复无聊的foreach代码(Scala示例)