栈的应用
来源:互联网 发布:python逻辑运算符 编辑:程序博客网 时间:2024/06/05 15:45
/*Description检查输入字符串中的括号是否匹配。括号包括:{, }, (, ), [, ]. Input: 第一行是一整数,即测试样例个数n. 以下n行,每一行是一个长度不超过100个字符的字符串。 Output: 第一行是一整数,即测试样例个数n. 以下n行,每一行是一个长度不超过100的字符串。Sample Input: 3 a 2-[(1+2)*2] (a+b])Sample Output: Yes Yes No*/#include<iostream>#include<stack>#include<string>using namespace std;int main(){ int n; cin>>n; for(int i=0;i<n;i++) { stack<char> my; string s; int flag=0; cin>>s; int len=s.length(); for(int j=0;j<len;j++) { if(s[j]=='('||s[j]=='['||s[j]=='{') my.push(s[j]); if(s[j]==')') { if(my.empty()||my.top()!='(') { flag=1; cout<<"No"<<endl; break; } else my.pop(); } if(s[j]==']') { if(my.empty()||my.top()!='[') { flag=1; cout<<"No"<<endl; break; } else my.pop(); } if(s[j]=='}') { if(my.empty()||my.top()!='{') { flag=1; cout<<"No"<<endl; //只有右括号或者括号不匹配 break; } else my.pop(); } } if(!my.empty()&&flag==0)//针对"只有左括号"的时候 cout<<"No"<<endl; if(my.empty()&&flag==0) //针对"没有任何括号的时候"并且falg==0保证了不多输出"No" cout<<"Yes"<<endl; } }
2.后缀表达式算
/*后缀表达式计算
Input 第一行是一整数,即测试样例个数T. 以下T行,每一行是一个长度不超过100的字符串,代表一条后缀表达式。 表达式中只含有+、-、*、/四种运算符和26个小写英文字母,不含其它字符。每一个英文字母代表一个正整数: a = 1,b = 2,c = 3...y = 25,z = 26。Output 每一个输入样例,单独一行输出结果:后缀表达式的值,一个正实数S,保留两位小数。 Sample Input: 2 ab+c* int**py++Sample Output: 9.00 2561.00*/#include<iostream>#include<stack>#include<string>#include <iomanip>using namespace std;int main(){int n;cin>>n;for(int i=0;i<n;i++){stack<double> my;double p,q;string s;cin>>s;int len=s.length();for(int j=0;j<len;j++){if(s[j]>='a'&&s[j]<='z')my.push((s[j]-'a'+1));if(s[j]=='+'){p=my.top();my.pop();q=my.top();my.pop();my.push((p+q)); }if(s[j]=='-'){p=my.top();my.pop();q=my.top();my.pop();my.push((q-p)); }if(s[j]=='*'){p=my.top();my.pop();q=my.top();my.pop();my.push((p*q)); }if(s[j]=='/'){p=my.top();my.pop();q=my.top();my.pop();my.push((q/p)); }}cout<<fixed<<setprecision(2)<<my.top()<<endl;}}
0 0
- 栈&栈的应用
- 栈的应用
- 栈的应用
- 简单的栈应用
- 栈的应用
- 栈的简单应用
- 栈的应用
- 栈的应用
- hdu1022栈的应用
- 栈的应用举例
- 栈的应用
- 栈的简单应用
- 数据结构栈的应用
- 栈的简单应用
- 栈的简单应用
- 栈的应用
- 栈的应用
- 栈的经典应用
- Ubuntu安装MySQL
- 发福利,整理了一份关于“资源汇总”的汇总
- Java和Flex整合报错(四)
- Android 框架炼成 教你如何写组件间通信框架EventBus
- 纯c#编写的脚本引擎(非CodeDom)
- 栈的应用
- 分区表
- 工厂方法模式
- JavaScript中的参数传递
- 献给新手:解析STM32的库函数
- 虚拟机及VmBasic编译引擎实现
- 判断三角形
- 网页信息抓取进阶 Jsoup的不足之处
- UVA 10618 Tango Tango Insurrection(DP)