前端基础笔记——判断出栈顺序是否正确

已知栈的压入顺序,判断弹出顺序是否正确。
			function mysort(pushV,popV){
				// 出栈顺序是否正确根据辅助栈的长度,如果为0则表示可以全部出栈
				var arr=[pushV[0]];
				for(var i=0;i<popV.length;i++){
					// 栈顶元素不等于当前元素则继续入栈
					if(arr[arr.length-1]!=popV[i]){
						// 当原始栈还有元素则可以继续入辅助栈
						for(var j=arr.length;j<pushV.length;j++){
							if(arr.length<pushV.length&&arr[arr.length-1]!=popV[i]){
								arr.push(pushV[j])
							}
							// 添加之后再判断1次
							if(arr[arr.length-1]==popV[i]){
								arr.pop()
								pushV.splice(arr.length,1)
								break;
							}
						}
					}else{
						// 如果相等则出栈
						arr.pop()
					}
				}
				return arr.length==0?true:false;
			}
			console.log(mysort([1, 2, 3, 4, 5],[5,4,3,1,2]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值