华为机试 - 判断if语句括号是否匹配
2014-08-15 15:49
155 查看
编程的时候,if条件里面的“(”、“)”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确。同时输出语句中出现的左括号和右括号数量,如if((a==1)&&(b==1))是正确的,而if((a==1))&&(b==1))是错误的。注意if语句的最外面至少有一对括号。提示:用堆栈来做。
输入:if((a==1)&&(b==1))
输出:RIGTH 3 3
输入:if((a==1))&&(b==1))
输出:WRONG 3 4
输入:if((a==1)&&(b==1))
输出:RIGTH 3 3
输入:if((a==1))&&(b==1))
输出:WRONG 3 4
#include <iostream> #include <stack> #include <string> using namespace std; int main() { string ifStatement; cin>>ifStatement; stack<char> charStack; int leftNum=0,rightNum=0; for (size_t i=0;i<ifStatement.size();i++) { if(ifStatement[i]=='('||ifStatement[i]==')') { if(charStack.empty()) charStack.push(ifStatement[i]); else { char temp=charStack.top(); if (temp=='('&&ifStatement[i]==')') charStack.pop(); else charStack.push(ifStatement[i]); } if(ifStatement[i]=='(')leftNum++; if(ifStatement[i]==')')rightNum++; } } if(!charStack.empty()) cout<<"WRONG"<<' '; else cout<<"RIGHT"<<' '; cout<<leftNum<<' '<<rightNum<<endl; system("pause"); return 0; }
相关文章推荐
- 华为机试-判断if语句括号是否合法
- 华为2014机考题_判断if括号是否匹配_堆栈
- 华为2014机考题目_判断if括号匹配是否合法_堆栈_简单的方法- -
- 判断if语句括号是否合法
- 2014华为校招机试高级题——if语法中的括号判断
- 华为机试—if语句是否合法
- 华为机试—括号匹配判断[去多余括号]
- 判断字符串中的括号是否匹配
- 【算法】 判断括号是否匹配
- 只用递归来判断括号是否匹配
- 华为机试练习---括号匹配问题
- 基于栈判断括号是否匹配
- 数据结构算法——判断表达式中的括号是否匹配
- (容器配接器)堆栈应用:判断表达式中的括号是否匹配
- 简单判断表达式括号是否匹配
- [华为机试]判断身份证信息是否合法
- php判断字符串中前后括号是否匹配
- 括号问题 下面的代码用于判断一个串中的括号是否匹配 所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉
- 判断代码中的括号是否匹配
- Matlab 使用栈判断括号是否匹配