当前位置: 首页 > article >正文

表达式括号匹配(stack)(信息学奥赛一本通-1353)

【题目描述】

假设一个表达式有英文字母(小写)、运算符(+,—,∗,/)和左右小(圆)括号构成,以“@
”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。

【输入】

一行数据,即表达式。

【输出】

一行,即“YES” 或“NO”。

【输入样例】

2*(x+y)/(1-x)@

【输出样例】

YES

【提示】

【样例输入2】

(25+x)*(a*(a+b+b)@

【样例输出2】

NO

【题解代码】

#include<bits/stdc++.h>
using namespace std;

int main()
{
	stack<char> stk;
	char c;
	while (cin >> c || c != '@')
	{
		if (c == '(')stk.push(c);
		else if (c == ')')
		{
			if (stk.empty())
			{
				cout << "NO";
				return 0;
			}
			else 
				stk.pop();
		}
	}
	if (stk.empty()) cout << "YES";
	else cout << "NO";

	return 0;
}

http://www.kler.cn/a/597821.html

相关文章:

  • Android笔记之项目引用第三方库(如:Github等)
  • 施耐德 Unity Pro 项目配置
  • 前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)
  • AI比人脑更强,因为被植入思维模型【17】万物联系思维模型
  • Unity | 游戏数据配置
  • 如何在Linux CentOS上安装和配置Redis
  • Okhttp响应Json数据升级版源代码
  • JS 算术运算符
  • 在 coc.nvim 插件中,自动补全时,候选词后面的 大写字母
  • 【机器学习】使用Python Spark MLlib进行预测模型训练
  • 【uniapp】内容瀑布流
  • 系统架构设计知识体系总结
  • k8s运维 设置Pod实现JVM内存根据容器内存动态调整
  • 使用BAT批处理加PYTHON进行WORD批量文字删除
  • 银河麒麟桌面版包管理器(五)
  • 使用vscode搭建pywebview集成vue项目示例
  • Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin
  • Liunx系统Microsoft SQL Server数据库还原
  • 设计模式:创建型、结构型、行为型
  • 【Spring】深入理解 Spring 事务管理