【正经题解】表达式括号匹配(stack)
2024-02-22 10:24:44
发布于:浙江
40阅读
0回复
0点赞
检查输入的表达式中的左右圆括号是否匹配。
#include <iostream>
using namespace std;
int main() {
// 声明字符串变量用于存储表达式
string expression;
// 读取输入表达式
cin >> expression;
// 用于记录左右圆括号的数量
int leftCount = 0, rightCount = 0;
// 用于遍历字符串中的每个字符
int currentIndex = 0;
// 遍历字符串中的字符,直到遇到结束符“@”
while (expression[currentIndex] != '@') {
// 如果当前字符是左圆括号,则左括号数量加1
if (expression[currentIndex] == '(') {
leftCount++;
}
// 如果当前字符是右圆括号,则右括号数量加1
if (expression[currentIndex] == ')') {
rightCount++;
}
// 如果在任意时刻右圆括号数量超过左圆括号数量,输出“NO”并结束程序
if (rightCount > leftCount) {
cout << "NO";
return 0;
}
// 继续遍历下一个字符
currentIndex++;
}
// 检查左右圆括号的数量,输出相应结果
if (leftCount > rightCount) {
cout << "NO";
} else {
cout << "YES";
}
return 0;
}
这里空空如也
有帮助,赞一个