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

如何查询网站的建站工具中关村能力建设网站

如何查询网站的建站工具,中关村能力建设网站,如何创建自己的博客网站,推广工具有哪些【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 文章目录 【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 解题思路 动图演示完整代码多组测试 💗题目描述 💗: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个…

【刷题-牛客】出栈、入栈的顺序匹配 (代码+动态演示)

文章目录

  • 【刷题-牛客】出栈、入栈的顺序匹配 (代码+动态演示)
    • 解题思路
    • 动图演示
    • 完整代码
    • 多组测试

💗题目描述 💗:

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。

  1. 0<=pushV.length == popV.length <=1000

  2. -1000<= pushV [i]<=1000

  3. pushV 的所有数字均不相同

💗解释 : 其实这个题目的意思就是把通常经常遇见的判断题 已知入栈顺序(入栈的同时可以出栈),判断不可能的出栈顺序 ,封装成一个方法,然后我们通过此方法,传入 入栈顺序可能的出栈顺序,方法返回 true 代表 该出栈顺序是可能的, 返回false 代表 该出栈顺序是不可能的 .

解题思路

遍历入栈顺序进行压栈,压栈之后遍历可能的出栈顺序,如果遍历到的元素若与此时栈顶元素相同则表示应该出栈,然后继续后移判断;若不相同则表示此时不用出栈,转而继续进行压栈操作.

接下来我将通过动态图演示具体的过程,同时会将伪代码先写出来

例子入栈顺序 : 1  2  3  4  5 可能的出栈顺序 : 4  3   5  1  2 

动图演示

在这里插入图片描述


  • 可能出现的bug

我们通过观察伪代码中的while循环语句的条件,我们并没有考虑如果栈为空和 j 下标越界的情况 , 为什么要考虑这两种情况呢 ?

原因 : 我们在需要对这个代码进行测试 , 也就是看这个代码是否满足所有测试用例可能出现的情况.


当入栈顺序和可能的出栈顺序是相反的 : 可能的出栈顺序② : 5  4  3  2  1入栈顺序  : 1  2  3  4  5

当栈为空的时候,我们就不能再进入while循环的条件语句去执行s.peek()==popV[j] 了,所以我们可以在while条件
中增加一个条件 && != s.empty()

在这里插入图片描述


当入栈顺序和可能的出栈顺序是相同的 :
可能的出栈顺序③ : 1  2  3  4  5
入栈顺序  : 1  2  3  4  5

此时在while循环中执行完 s.pop() 之后,需要继续执行 j++ ,那么 j 就变成了 popV.length了. 所以此时我们不能进入while循环的条件语句去执行s.peek() == popV[j] 了,因为此时的 j 会出现下标越界异常,所以我们可以增加一个条件 && j<popV.length

在这里插入图片描述


  • 继续完善

由于题目要求 0<=pushV.length == popV.length <=1000 那么我们给方法传入的两个数组参数是可能为空的,为了提升代码的健壮性,我们可以可再继续加一个 if 条件语句 <font color=‘red’ return false;`


完整代码

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param pushV int整型一维数组 * @param popV int整型一维数组 * @return bool布尔型*/public boolean IsPopOrder (int[] pushV, int[] popV) {Stack<Integer> stack = new Stack<>();int j = 0;if(pushV.length == 0 || popV.length == 0) return false;for (int i = 0; i < pushV.length; i++) {stack.push(pushV[i]);while(j<popV.length&& !stack.empty() && stack.peek().equals(popV[j])){stack.pop();j++;}}return stack.empty();}
}

多组测试

  • 测试一

在这里插入图片描述

  • 测试二

在这里插入图片描述

  • 测试三

在这里插入图片描述

  • 测试四

8021598646)]


求三连!!!

http://www.yayakq.cn/news/348464/

相关文章:

  • 客户网站制作管理系统酷家乐软件培训班
  • 衡水网站设计哪家专业网站建设中左对齐
  • 哈尔滨企业建站系统模板河源网站seo
  • 一条龙网站建设哪家专业网站开发是什么专业
  • 域名还在备案可以做网站吗html网页设计案例和代码
  • 英文网站有哪些asp.net做的网站要放到网上空间去_要放哪些文件上去
  • 如何用wd做网站设计漳浦网页定制
  • 网站开发公司开发过程手机画画软件app
  • 销售网站制作门户网站管理流程
  • 网站项目建设流程青岛网站设计皆挺青岛
  • 网页设计与制作网站教程微信app下载链接
  • 网站建设详细流程视频广东省建设监理协会网站
  • 中卫网站制作公司四川建设厅官方网站查询资料员
  • 深圳网站设计公司有哪些全球速卖通开店需要多少钱
  • wordpress 可以做什么深圳关键词优化平台
  • html5营销网站建设长治网站建设公司
  • 网站工作和网站建设管理工作王烨燃大夫简介
  • 网站添加js广告位网站服务器和空间的区别
  • 白酒网站设计建设银行网站登录密码
  • 成都网站优化师什么网站做聚乙烯醇好的
  • 做网站网站的人是怎么被抓的上海模板建站平台
  • 网站后台fpt物流公司网站怎么做
  • 莞城区网站仿做做网站公司需要什么资质
  • 全网门户网站制做涿州网站制作多少钱
  • 小企业网站建设和管理建网站要花多少钱
  • vs2008可以做网站做演讲和做演讲视频网站
  • 汕头做网站多少钱伊春建设银行网站
  • 开发手机端网站模板下载临沂招聘网最新招聘
  • 淘宝客网站模板下载wordpress如何看访问
  • 虚拟主机怎么做淘客网站旌阳移动网站建设