判断一个序列的出栈次序是否合法

2023-10-29

/******************判断pop是否是src的合法出栈序列*****************************/
bool isPopSeq(string src, string pop){
	stack<char> sch;
	int len=pop.length();
	if(src.length()!=pop.length())
		return false;

	for(int i=0;i<len;i++){
		int idx=src.find(pop[i]);
		if(idx==string::npos && sch.empty())		//若在初始序列找不到并且栈为空则非法
			return false;
		else if(idx!=string::npos){			//若在初始序列找到了,则将后续字符依次入栈,同时将顶上元素抛出
			for(int j=0;j<=idx;j++)
				sch.push(src[j]);
			src.erase(src.begin(),src.begin()+idx+1);
			sch.pop();
		}
		else if(idx==string::npos && !sch.empty()){	//若在初始序列中找不到且栈非空,则比较栈顶元素与出栈序列元素是否相等,不相等则非法。
			char ch=sch.top();
			if(ch==pop[i])
				sch.pop();
			else
				return false;
		}
	}
	return true;
}

#define judgeSeq(src,pop) \
	if(isPopSeq(src,pop)) cout << "is a valid seq" << endl; \
	else cout << "is a inValid seq" << endl;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断一个序列的出栈次序是否合法 的相关文章

  • 电脑能上QQ无法上网页解决方法总结

    一 简单办法 使用腾讯管家 gt 工具箱 gt 电脑诊所 gt 上网异常 gt 能上QQ无法上网页 gt 立即修复 二 较复杂办法 很明显的问题 这个是DNS出了问题 我告诉你一招 基本是100 可以解决的 网上邻居右键属性 找到你的本地连
  • RocketMQ参数配置

    一 MQ启动 gt nohup sh mqnamesrv gt nohup sh mqbroker n 47 97 72 25 9876 c broker properties jps查看启动情况 二 broker properties参数
  • Git - 如何将git修改的文件导出和导入

    1 应用场景 主要用于将git修改的文件导出和导入 帮助提高工作效率 2 学习 操作 1 文档阅读 来自chatGPT的对话 2 整理输出 2 1 如何将git修改的文件导出来 如果您只是想将 Git 仓库中的文件导出到本地磁盘中 而不需要
  • 【PTA】分解质因数

    求出区间 a b 中所有整数的质因数分解 输入格式 输入两个整数a b 数据规模和约定 2 lt a lt b lt 10000 输出格式 每行输出一个数的分解 形如k a1a2a3 a1 lt a2 lt a3 k也是从小到大的 具体可看
  • Solidity 基础(一)

    Solidity 官网 github Solidity是一种静态类型的花括号 curly braces 编程语言 旨在开发运行在以太坊 Ethereum 上的智能合约 Solidity正在迅速发展 作为一门相对年轻的语言 Solidity正
  • 网络工程(计算机网络)毕业论文+PPT【银行内部网络系统规划与设计】

    我有两位优秀的小兄弟毕业了 在他们的允许下 把这两篇毕业论文写成博客 作为网络专业同学的参考 仅供参考 切勿用作其他用途 论文一 网络工程 计算机网络 毕业论文 PPT 银行内部网络系统规划与设计 论文二 网络工程 计算机网络 毕业论文 P
  • Vite 配置 cdn 加载资源

    一 介绍 上篇文章我们从零配置 Vite Vue3 0 开发环境 生产环境 本篇文章我们配置 CDN 加载 因为 Vite 不会重写从外部文件导入的内容 我们需要使用支持 ESM 编译的 CDN 这里我们使用 https esm sh 来引
  • 下拉ajax,ajax下拉框联动

    My JSP car jsp starting page 请选择汽车品牌 宝马 奥迪 奔驰 请选择系列 var xmlHttp 创建XMLHttpRequest对象 function createXMLHttpRequest if wind
  • Kafka3.0.0版本——消费者(自动提交 offset)

    目录 一 自动提交offset的相关参数 二 消费者 自动提交 offset 代码示例 一 自动提交offset的相关参数 官网文档 参数解释 参数 描述 enable auto commi 默认值为 true 消费者会自动周期性地向服务器
  • Spring Boot实现IP地址解析

    一 本地解析 如果使用本地ip解析的话 我们将会借助ip2region 该项目维护了一份较为详细的本地ip地址对应表 如果为了离线环境的使用 需要导入该项目依赖 并指定版本 不同版本的方法可能存在差异
  • Linux下FFMPEG安装要点

    关于linux下ffmpeg的安装 网上的介绍非常多了 基本都能解决大家的问题 我这里只是总结了几点 1 源码下载 git clone git source ffmpeg org ffmpeg git ffmpeg 2 安装SDL SDL是
  • inux shell和c程序之间互相传递数据

    http blog csdn net yff1030 article details 7857927
  • J2EE02 list(集合框架)

    目录 一 思维导图 编辑 二 list 集合的打印方式 三 list集合的特点 1 有序 2 元素可以重复 四 list的删除 五 list集合的 装箱 拆箱 一 思维导图 二 list 集合的打印方式 1 下标遍历for循环 2 fore

随机推荐

  • Kerberos安全认证-连载10-Hive Kerberos 安全配置及访问

    目录 1 Hive 配置 Kerberos 2 Hive Cli使用Kerberos 3 Hive beeline使用Kerberos 4 JDBC访问Kerberos认证Hive 5 Spark访问Kerberos认证Hive 6 Fli
  • 软件测试之同行评审

    Peer Review 同行评审 一 概念及目的 一般来说 一个产品完成之后通常会由它的作者及作者的同事来进行检查 目的是为了评估产品的技术性和质量 这就是我们所说的同行评审 在软件测试中同样也有同行评审 Peer Review 便于对软件
  • 基于HAL库的FREERTOS----------二.任务API函数

    任务API函数览概 CUBEMX对 做了API的封装 很多 的函数没有封装到位 可以用原函数调用 任务API函数分别介绍 1 uxTaskPriorityGet 此函数用来获取指定任务的优先级 要使用此函数的话宏 INCLUDE uxTas
  • Anaconda中spyder打不开,闪一下结束

    Anaconda中spyder打不开 闪一下结束 Anaconda 64位 python3 5或3 4 解决方案 把用户变量中 pythonpath改为path
  • 行列式与矩阵的初等变换总结

    行列式 对 n n n阶行列式 有以下5种变换 转置后 值不变 即 A T
  • JavaSE复习:面向对象编程

    首先 面向对象 OOP Object Oriented Programming 的相对词语是面向过程 POP Procedure Oriented Programming 面向过程 强调的是功能行为 以函数为最小单位 考虑怎么做 面向对象
  • WIN32模态对话框按钮消息处理

    本文根据网络课程学习笔记整理 内容为建立了一个win32模态对话框 并拖入两个按钮后对按钮消息进行处理 程序在VS2019上运行通过 对代码做了详细注释 一 视窗部分 1 右键方案名 解决方案资源管理器中的方案名 gt 添加 gt 资源 g
  • Exception总结之Software caused connection abort: socket write error

    1 ClientAbortException java net SocketException Software caused connection abort socket write error 程序运行正常 数据也没有出错 后台却老是
  • SpringBoot 常用读取配置文件的 3 种方法!

    我们在SpringBoot框架进行项目开发中该如何优雅的读取配置呢 或者说对于一些List或者Map应该如何配置呢 本篇主要解决如下几个问题 1 Spring Boot有哪些常用的读取配置文件方式 1 使用 Value 读取配置文件 2 使
  • echarts图表共用一个 timeline(A表 timeline 同时控制B表)

    先看效果 再看代码 部分 let barOption baseOption height 350 timeline x cen
  • QNX编写程序-QNX程序例子

    author 锋影 email 174176320 qq com QNX开发环境和QNX虚拟机都搭建好了 开始写第一个QNX程序 因为以上两份资料已经很详细的说明了QNX程序的开发过程 下面就简单说明一下步骤 环境准备 1 QNX Neut
  • 关于AI和ChatGPT的使用,AI编程(AIGC),AI绘画

    对于AI和ChatGPTDE使用是在科技公司实习后才真正运用 虽然在大学时期就有了解 但是由于课程和其他课外活动挤占时间 我当时没能好好研究AI 人工智能 人们往往对它的印象是高大上的 高科技 高门槛 事实真是如此吗 工作以后 受同事等环境
  • k8s——排错指南

    一般的k8s排错步骤 查看node状态 查看pod状态 查看kubelet系统日志 一 常用命令 1 查看各节点状态 kubectl get node
  • 教你如何用U盘装系统 WINPE + GHOST + 虚拟光驱

    教你如何用U盘装系统 WINPE GHOST 虚拟光驱 教你如何用U盘装系统 装系统前的准备 一个能启动电脑的U盘和一个系统的光盘镜像 在安装系统前 需要准备好一些东西 一个是操作系统的镜像 另一个就是能启动的U盘 下面我们就来讲解怎么安装
  • python3.7.1安装scipy_python - 使用pip安装SciPy

    python 使用pip安装SciPy 使用pip install numpy可以使用pip安装NumPy SciPy有类似的可能性吗 做pip不起作用 更新 SciPy包现在可以安装pip 15个解决方案 207 votes 先决条件 s
  • AcWing 1884. COW 经典dp

    AcWing 1884 COW 打卡 include
  • TCP 的那些事儿(下)

    转自 http coolshell cn 这篇文章是下篇 所以如果你对TCP不熟悉的话 还请你先看看上篇 TCP的那些事儿 上 上篇中 我们介绍了TCP的协议头 状态机 数据重传中的东西 但是TCP要解决一个很大的事 那就是要在一个网络根据
  • STM32开发笔记(二)——动态模块加载和ELFLoader

    STM32开发笔记 二 动态模块加载和ELFLoader 小狼 http blog csdn net xiaolangyangyang 动态模块加载的好处 动态模块加载的好处很多 例如 当你升级一个系统的时候 可以只升级一个模块 而不必升级
  • 下载安装jdbcj及jdbc与jdk,mysql对应版本匹配问题

    下载安装jdbcj及jdbc与jdk mysql对应版本匹配问题 下载安装jdbc 1 下载安装jdbc前一定有必要了解jdbc与jdk mysql版本的对应关系 因为jdbc mysql jdk一直在变化 而且大家下载的版本各不相同 没法
  • 判断一个序列的出栈次序是否合法

    判断pop是否是src的合法出栈序列 bool isPopSeq string src string pop stack