栈-判断输入字符串是否合法

news/2024/4/29 19:59:17

假设以I和O分别表示进栈和出栈操作,栈的初态和终态均为空,进栈和出栈的操作序列可表示为仅由I和O组成的序列。设计一个算法判断所给的操作序列是否合法,若合法返回真,否则返回假(假设被判断的操作序列已存入一维数组中)。

#include<iostream>
#include<vector>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;bool isok(vector<char> s) {int cnti = 0, cnto = 0;int i = 0;while (s[i]) {if (s[i] == 'I') cnti++;else if(s[i]=='O') cnto++;if (cnto > cnti) return false;i++;}if (cnto == cnti) return true;
}
int main() {string ss;vector<char> s;//(scanf("%s",&ss)) != EOF不用这个好像是因为她只接char*类型,反正不行while (getline(cin, ss)) {//气死我了,getline(cin,ss)在<string>头文件里,不在<cstring>里,大无语!s.clear();//也要啊!!!for (char c : ss) {s.push_back(c);}if (isok(s)) {//啊啊啊这一个实现的板块应该在这里啊,在while内啊!cout << "合法!";}else cout << "不合法!";cout << endl;ss.clear();}return 0;
}

注意:

getline(cin,ss)在头文件<string>

for(char c :ss)

因为是连续输入,所以必须要记得清空字符串和动态数组;

这里的进栈出栈的判断合法性用方法的好好。先要循环记录个数,每次一旦有不对的就可以返回了,当然最后还要判断个数等不等。


http://www.mrgr.cn/p/68586353

相关文章

01-创建mini qt工程

1. 创建mini qt工程,工程中只有一个.pro工程文件,更好的理解qt程序框架 2. 创建工程,一直下一步完成创建工程3. 查看.pro4. 添加main函数add new file---->C++--->C++ Source File命名main.cpp5. 修改.pro文件并初始化main函数上面为了更直观显示,使用QLabel显示在主…

[题解]P5858 Golden Sword

P5858 「SWTR-3」Golden Sword 第一道自己想出递推公式并且成功\(AC\)的\(dp\)绿题。 题意简述 有\(n\)种原料,每个原料有一个耐久度\(a[i]\),必须按照\(1,2,…,n\)的顺序放入炼金锅。但是炼金锅的容量是有限的,只有\(w\),所以在每次放入原料之前,都可以选择取出\(0\sim s…

故障诊断 | 一文解决,CNN-BiLSTM卷积神经网络-双向长短期记忆神经网络组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,CNN-BiLSTM卷积神经网络-双向长短期记忆神经网络组合模型的故障诊断(Matlab) 模型描述 CNN-BiLSTM卷积神经网络-双向长短期记忆神经网络组合模型是一种深度学习模型,结合了卷积神经网络(CNN)和双向长短期记忆网络(BiLSTM)的优点…

c++初阶------c++代码模块

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

Python中Keras微调Google Gemma:定制化指令增强大型语言模型LLM

全文链接:https://tecdat.cn/?p=35476 原文出处:拓端数据部落公众号 像谷歌、Meta和Twitter这样的大公司正大力推动其大型语言模型(LLM)的开源。最近,谷歌DeepMind团队推出了Gemma——一个由与创建谷歌Gemini模型相同的研究和技术构建的轻量级、开源LLM系列。 本文,我们…

【python】服务端和客户端 RESTful 接口上传 E

哈喽,大家好,我是木头左,物联网搬砖工一名,致力于为大家淘出更多好用的AI工具! 服务端代码 1. 安装 Flask 和 Flask-RESTful 需要安装 Flask 和 Flask-RESTful 这两个库。Flask 是一个轻量级的 Web 框架,而 Flask-RESTful 则是一个为 Flask 添加了 RESTful API 支持的扩展…

「杂文」蒙特卡洛树搜索算法实现黑白棋AI

妈的下棋下不过爆搜,感觉大脑被雷普了目录写在前面实验内容实验要求实验环境实验原理蒙特卡洛方法(Monte Carlo method)蒙特卡洛树搜索(Monte Carlo tree search)代码结构Infomation.pyBoard.pyNode.pyAI.pyWidget.py代码写在最后 写在前面 人工智能实验报告。 妈的我真的…

综合练习

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 许多初学者都可能遇到这样的问题&#xff0c;就是往 DATE 类型的列插入日期数据时&#xff0c;经常被提示错误。比如下面的 ABC 表结构 SQL> CREATE TABLE test1( 2 id …

下载包时将其下载在正确位置

接上篇 如何将包下载到python的Lib/site-packages目录下使用这个语句—— 解释器位置 -m pip install 包名字 解释器位置查看方式—— File-》Settings… Project:名称-》Python Interpreter 不过需要注意的是,在python中下载文件时最好就不要再同时运行其他的东西了(我就是…

PHP常用的无参函数绕过

PHP常用的无参函数绕过 getallheaders() 这个函数的内容就是获取http所有的头部信息。接着我们可以用var_dump函数来把函数的执行结果都打印出来。这个函数有一个缺陷,它只能在apache中间件环境下使用。我们来在本地测试一下无参函数的具体效果。 测试代码: <?php highli…

视频素材app有哪些?视频素材网址推荐

在这个视觉传达愈发重要的时代&#xff0c;拥有一款好的无水印短视频素材网站就如同握有一把打开创意之门的钥匙&#xff0c;选择合适的短视频素材平台至关重要&#xff0c;这会让你的视频制作更加轻松而高效。 1&#xff0c;蛙学府 以其广泛的优质视频素材库而闻名&#xff0…

手把手教你做阅读理解题-初中中考阅读理解解题技巧002

PDF格式公众号回复关键字:ZKYD002阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解 1 预览文章结构 在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构 标题通常能…

2. Ubuntu Linux 操作系统安装

2.1 下载Ubuntu iso文件(可以选择镜像源),版本 24.04.4。 2.2 设置虚拟光盘文件。 2.3 安装Ubuntu. 启动虚拟机。 选择语言中文简体,安装Ubuntu键盘布局选择English(US)点击继续,清理整个磁盘并安装Ubuntun,时间选择pei-ching设置计算机账户密码。 安装Ubuntu,安装完成启…

信号的概念和机制

1.信号的概念和机制理解信号可以参考生活中,烽火、狼烟等 信号的特点:1.简单;2.不能携带大量信息;3.满足某个特设条件才发送1.1.信号的机制 信号时软件层面的“中断”,信号VS中断VS异常,三个概念可以一起学习 每个进程收到的所有信号,都是由内核负责发送、内核处理的 简…

Go --- Go语言垃圾处理

概念 垃圾回收&#xff08;GC-Garbage Collection&#xff09;暂停程序业务逻辑SWT&#xff08;stop the world&#xff09;程序根节点&#xff1a;程序中被直接或间接引用的对象集合&#xff0c;能通过他们找出所有可以被访问到的对象&#xff0c;所以Go程序的根节点通常包括…

Devvortex Hack the box

nmap -A -oN initial_scan 10.10.11.242发现打开了80和22 用dirsearch和fuff扫子域名和子目录 直接发现目录/administrator 进去发现是Joomla页面发现版本是4,那么就和漏洞Joomla(CVE-2023-23752)一样 可以看https://xz.aliyun.com/t/12175?time__1311=mqmhD5DK7IejhDBdPx2DU…

Python接口自动化(什么是接口、接口优势、类型)

简介 经常听别人说接口测试&#xff0c;接口测试自动化&#xff0c;但是你对接口&#xff0c;有多少了解和认识&#xff0c;知道什么是接口吗&#xff1f;它是用来做什么的&#xff0c;测试时候要注意什么&#xff1f;坦白的说&#xff0c;笔者之前也不是很清楚。接下来先看一…

uniapp自定义导航栏左中右内容和图标,以及点击事件

uniapp自定义导航栏左中右内容和图标&#xff0c;以及点击事件 效果&#xff1a; 页面&#xff1a; <view class"navigation-bar"><view class"navigation-bar-left" click"navigateBack"><u-icon name"arrow-left"…

VoxelRCNN

PDF: Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection CODE: https://github.com/djiajunustc/Voxel-R-CNN 一、大体内容 现有基于Point-based的目标检测方法可以保留精确点的位置,具有更好的性能,但是由于无序的存储方式,计算量很大。而Voxel-base…

关于在forEach循环中使用异步,造成forEach里面的函数还未执行完毕,外层的同步已经被执行的问题

使用 原生的 for循环替代forEach循环即可解决问题 1.实例代码&#xff1a; select_Father_comment_sql_res.forEach( (item) > {const Select_FId_children_sql util.format("Select *, \IFNULL(User.UserName,) as CommentUserName, \IFNULL(User.UserName,) as AtU…