合法出栈序列

出栈的合法序列(c语言)C++ 现有一个空栈c和一个正整数n,将1,2,3,...,n1,2,3,...,依次入栈,期间任意时刻出栈。然后给定一个出栈序列,问其是否是一个合法的出栈序列。第二行为[1,n]的一个排列,表示一个出栈序列,整数间用空格隔开。第一行一个整数n(1≤n≤100),表示需要入栈的整数个数;输出则要求输出成功为yes,失败为NO,接下来按下面的顺序执行即可得到出栈序列 阅读详情

描述

给定一个由不同小写字母构成的长度不超过8的字符串x,现在要将该字符串的字符依次压入栈中,然后再全部弹出。

要求左边的字符一定比右边的字符先入栈,出栈顺序无要求。

再给定若干字符串,对每个字符串,判断其是否是可能的x中的字符的出栈序列。

输入

第一行是原始字符串x
后面有若干行,每行一个字符串

输出

对除第一行以外的每个字符串,判断其是否是可能的出栈序列。如果是,输出"YES",否则,输出"NO"

样例输入

abc
abc
bca
cab

样例输出

YES
YES
NO

# endcoding : UTF-8
"""
@author = 寻找任大侠
@email = renjx@stu.pku.edu.cn
@create_time = 2022/3/13 2:14
"""
import sys

list_1 = list(input())

# print(list_1)
for line in sys.stdin:
    list_2 = list(line)
    index = 0
    stack = []  # 模拟入栈出栈过程
    for i in list_1:  # 遍历每个入栈元素
        stack.append(i)  # 入栈
        while len(stack) > 0 and stack[-1] == list_2[index]:  # 判者栈顶元素和比对的队列首部是否相同
            stack.pop()  # 相同就弹栈,一直弹到不同为止
            index += 1
    if len(stack) == 0:
        print("YES")  # 栈为空则YES,否则匹配失败NO
    else:
        print("NO")

合法的出栈序列 题目 已知从1至n的数字序列,按顺序入栈,每个数字如战后即可出栈,也可在栈中停留,等待后面的数字入栈出栈后,该数字再出栈,求该数字序列的出栈序列是否合法? 思路 用一个栈和一个队列实现。 栈存储放入的是数字1-n入栈的序列,队列存储的是要判断的序列。 当栈不为空且栈顶元素和队列的头元素相等时,那么栈弹出栈顶元素,队列弹出头元素。当不相等时,1-n的序列继续入栈。 最终,若栈为空,则说明序列正确,否则,就为错误。 代码 #include <iostream> #include <stack 阅读详情

相关推荐

2022.11 上海市计算机学会月赛试题

2022.11 上海月赛题解

bo__yuan的博客 605

递归——全排序【稍难】【多回顾】

题目描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入描述: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 输出描述: 输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义: 已知S = s1s2...sk , T = t1t2...tk,则

白给、少年 263

出栈序列的合法性

问题描述:对于一个进栈序列其出栈序列存在多种合法的可能情况。例如:入栈序列为1,2,3,4,5时,而对于出栈序列5,4,3,2,1、1,3,2,5,4、3,5,4,2,1等等这些都是一个合法的出栈序列,但是对于3,5,2,4,1、5,3,4,2,1等这种出栈序列则是非法的序列,因为其违背了栈的特性(先进后出或者后进先出)。 ★对于1,2,3,4,5这样的进栈序列,我们最常想到的出

Xiao__Tian__的博客 8789

全排列-递归

链接 题目描述:给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。 解题方法:递归 代码1: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn = 7; cha

weixin_43878652的博客 586

判断合法出栈序列

PIPI现有a-z 26个小球模拟出入栈操作,小球按照a~z的顺序压入栈,在栈顶的元素可以随时被取出,在游戏开始前给出任意26个字母的一些排列,问是否能够由出栈顺序得到这个排列。 输入 输入包含多组测试用例。 每组测试用例包含26个字母组成的一个序列。 输出 若出栈顺序合法,输出"yes",否则输出"no". 样例输入 abcdefghijklmnopqrstuvwxyz za...

GYH0730的博客 2203

当GO.db安装失败时,生物信息学新手应该知道的5个底层逻辑

本文为生物信息学新手提供了解决GO.db安装失败的5个关键底层逻辑,包括网络连接与镜像源设置、版本兼容性检查、依赖关系管理、SQLite存储机制理解以及调试技巧。特别针对Bioconductor的GO.db包安装问题,详细介绍了如何通过切换国内镜像、管理版本冲突和解决依赖问题来成功安装,帮助用户高效克服常见安装障碍。

weixin_29062823的博客 407

判断是否是合法的出栈序列

判断是否是合法的出栈序列 栈,这个“后进先出(Last In First Out)” 数据结构应该都不陌生。如果 a、b、c 依次入栈,然后出栈,那么出栈顺序是 c、b、a;如果 a 入栈然后出栈、b 入栈出栈、c 入栈出栈,那么出栈顺序是 a、b、c。如果只是强调 a、b、c 的入栈顺序,而不强调具体的出栈顺序,那么 cba 和 abc 都可以是出栈顺序,acb、bac 和 bca 也都可以,

The_star_is_at的博客 1万+

DGX Spark上PyTorch GPU环境配置实战:CUDA 13.0与ARM架构全流程

在深度学习中,CUDA作为GPU加速计算的底层基础,其版本与深度学习框架(如PyTorch)的匹配直接影响模型训练的效率与稳定性。GPU环境配置不仅涉及驱动、CUDA工具链与框架运行时的协同,还依赖于硬件架构与预构建包的兼容性。在AI开发机Ubuntu系统上,正确对齐CUDA版本、计算能力架构及安装源,是避免环境故障、发挥硬件算力的关键。无论是面向个人AI超算还是通用GPU服务器,掌握版本对齐、路径隔离与验证方法,都能大幅提升开发效率。本文以DGX Spark为例,详解从环境摸底到PyTorch GPU版本

weixin_29483277的博客 215

判断出栈序列是否合法

题目描述:1--元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。  分析如下: 1.如果两个数组长度不相等,直接不合法 2.如果两个数组都为空,合法 3.S用来正常的压栈,q村正确的出栈序列 代码如下: #include #include #

喵喵的博客 2553

第三节: 串口通信(用CubeMX学习STM32)

用CubeMX学习STM32, 串口通信学习, 通过轮询方式和中断方式两种方式进行通信演示。 STM32F407zgt6

Kevin_8_Lee的博客 8902

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

WW、forever的博客 264

检验合法的出栈序列(C++)

1.问题描述 已知从1到n编号的n个元素按照从小到大的顺序依次入栈,每个数字入栈后即可出栈,也可在栈中停留,等待后面的数字入栈出栈后再出栈。请设计一个函数用来检验某个给定的出栈序列是否合法。 例如,当n=4时,4321为合法出栈序列,而4132为非法出栈序列。 2.分析 如果这不是一个要求编程的问题,而是笔试题的话。那么是否为合法出栈序列是非常好判断的,只需要牢记一个规则:将入栈元素按入栈...

Zee_Chao的博客 4763

NVIDIA Isaac GR00T N1 人形机器人强化学习入门教程(二)详细步骤

LeRobot 格式 1.1 加载数据集 要加载数据集,我们需要定义以下 3 项内容: 在数据中显示图像帧 我们还可以对 LeRobotSingleDataset 类中的数据进行一系列转换。下面展示了如何对数据进行转换。 现在看看应用转换后的数据有何不同。 例如,对状态和操作进行规范化和串联,对视频图像进行裁剪、调整大小和颜色抖动。 二、GR00T 推断 本教程介绍如何使用 GR00

2506_90492529的博客 3012

判断出栈序列是否合法[C/C++]

学校老师出的pta题目

Tanhauser的博客 2820

【即插即用模块】注意力篇 | TGRS 2025 | MFA聚特征+HPDown保细节+HFF融层级,三大模块各司其职,性能翻倍!

本文介绍了MTMLNet网络中的三大核心模块:MFA(多阶段特征聚合)、HPDown(混合池化下采样)和HFF(分层特征融合)。MFA通过双尺度深度卷积和注意力机制增强特征提取能力;HPDown结合平均池化和最大池化,有效保留下采样过程中的特征信息;HFF采用三注意力机制实现自适应特征融合。这三个模块协同工作,在红外小目标检测与分割任务中取得了SOTA效果。实验表明,各模块在特征提取、信息保留和融合方面均优于传统方法,可灵活应用于各类视觉任务中。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 282

基于STM32L4XX、HAL库的SIM65M定位模块驱动程序设计

SIM65M是一款基于4G LTE Cat.1的无线通信模块,支持最大下行速率10Mbps和上行速率5Mbps。它兼容多种网络协议(TCP/UDP/HTTP/HTTPS/FTP/MQTT等),适用于物联网应用。PC0 <---> PWRKEY (模块电源控制)PC1 <---> RESET (模块复位)支持LTE-FDD/LTE-TDD。工作电压:3.4V~4.2V。

zhusl6688的博客 196

判断一个栈的出栈序列的合法性

规则是: 出栈序列中的每个数后面的比它小的数,是按递减排列的。 简化规则描述: 1、假设入栈顺序为1234。 1)若出栈序列为4123,显然不满足上述要求,因为对于4,它后面比它小的数字序列为123,而123是一个递加系列即不是递减排列,所以不是合法出栈序列。 2)若出栈系列为3142,也不合法,因为3后面比它小的1和2不是递减排列的。 3)若出栈系列为1234,则合法,因为对于每一个数字它后...

如是说的博客 1万+

反应堆设计:基于MATLAB的反应堆仿真和分析,包括反应堆稳态分析、反应堆动态分析和反应堆安全分析 介绍

反应堆设计是利用计算机技术对核反应堆进行设计和模拟,以获得安全、高效、经济的核能发电系统。它是核能领域的重要组成部分,在电力生产、核医学、科学研究等领域有着广泛的应用。

走向CTO的路上... 1112

PTA出栈序列的合法性

浙大版《数据结构学习与实验指导(第2版)》题目集 基础实验3-2.4 出栈序列的合法性 (25分) 天梯赛模拟赛l2-1 给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, …, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。 输入格式: 输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数

akioi的博客 694

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

出栈序列的合法性判断

出栈序列的合法性判断 如果栈无限大:出栈序列中的每个数后面的比它小的数,是按递减排列的。 如果栈大小有限制:模拟 基础实验3-2.4出栈序列的合法性(25point(s)) 代码:O(n) #include <bits/stdc++.h> using namespace std; int const N = 1000 + 10; stack<int>st; i...

FlyingJack 1141

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

出栈序列合法性判断

遍历出栈序列的每个元素,对于每个元素执行以下操作: 如果当前元素等于指针指向的元素,则将指针移动到下一个元素,模拟该元素入栈后立即出栈。如果当前元素不等于指针指向的元素,但等于栈顶元素,则将栈顶元素出栈。如果当前元素既不等于指针指向的元素,也不等于栈顶元素,则将指针指向的元素入栈,直到栈顶元素与当前元素相等。通过上述方法,我们可以有效地判断给定的出栈序列是否合法,这在编程竞赛和面试中是一个常见的问题。如果在任何时候栈的大小超过了最大容量,或者无法匹配出栈序列中的元素,则该序列不是合法的出栈序列。

weixin_62349327的博客 1351

判断是否是合法的出栈序列(详细

在技术笔试面试上,我们常常会遇到这样一类题型,如给你一个入栈序列,然后再让你判断几个序列是否有可能为它的出栈序列,如: 入栈序列为 1 2 3 4 5,则 1 2 3 4 5可能为它...

CSer 5964

出栈序列的合法性 【模拟】

7-15 出栈序列的合法性(25 分) 给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, …, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。 输入格式: 输入第...

banshen0201的博客 2555
上一篇: 可迭代对象生成器
下一篇: error MSB3073 错误解决办法
Knight_Ren
博客等级 码龄10年 22粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight_Ren

资源不易,打赏随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值