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

j2ee做网站2023年国家免费技能培训

j2ee做网站,2023年国家免费技能培训,未来做那些网站致富,福田祥菱m2怎么样栈(Stack) 栈是一种特殊的线性表,只能在一端进行操作。 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫做&a…

栈(Stack)

  • 是一种特殊的线性表,只能在一端进行操作。

  • 往栈中添加元素的操作,一般叫做push入栈
    在这里插入图片描述

  • 从栈中移除元素的操作,一般叫做pop出栈(只能移除栈顶元素,也叫做:弹出栈顶元素)
    在这里插入图片描述

  • 后进先出的原则,Last In First Out,LIFO
    在这里插入图片描述
    我们可以将栈看做一个动态数组(ArrayList)或者一个线性表(List),这样很好的实现栈的添加和删除等操作。

  • 下面通过将上一次我们写的ArrayList动态数组导入进去,变为Stack(栈)的一部分,进而更加方便的实现栈的添加、删除等操作。

  • 对于动态数组,我们可以参考上篇文章ArrayList动态数组底层封装分析

import com.mj.list.ArrayList;
import com.mj.list.List;public class Stack<E>{/*这里之所以将list变为私有的,是因为如果直接继承ArrayList,会导致后期可以通过ArrayList里面的get、set等操作来实现Stack里面的数值变化。在我们平常,Stack(栈)是没有这些操作的,所以要将其变为私有的,防止被外面直接调用进行修改。 我们既可以直接将ArrayList变为Stack中的一部分,也可以将LinkedList变为Stack中的一部分*/private List<E> list = new ArrayList<>();/*** 元素的数量* @return*/public int size() {return list.size();}/*** 是否为空* @return*/public boolean isEmpty() {return list.isEmpty();}/*** 入栈* @param element*/public void push(E element) {list.add(element);}/*** 出栈* @return*/public E pop() {return list.remove(list.size()-1);}/*** 获取栈顶元素* @return*/public E top() {return list.get(list.size()-1);}/*** 清空栈中元素*/public void clear() {list.clear();}
}

测试:

public class Main {public static void main(String[] args) {Stack<Integer> stack = new Stack<>();stack.push(11);stack.push(22);stack.push(33);stack.push(44);while (!stack.isEmpty()) {System.out.println(stack.pop());}}
}

运行结果:

44
33
22
11

LeetCode — 有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。

  • 有效字符串需满足:
    ①左括号必须用相同类型的右括号闭合。
    ②左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  1. 解法一:
import java.util.Stack;public class _20_有效的括号 {public boolean isValid(String s) {//[({})]while (s.contains("{}")|| s.contains("()")|| s.contains("{}")){s = s.replace("{}", "");s = s.replace("()", "");s = s.replace("[]", "");}return s.isEmpty();}
}
  1. 解法二:
import java.util.Stack;public class _20_有效的括号 {public boolean isValid(String s) {Stack<Character> stack = new Stack<>();int len = s.length();for (int i = 0; i < len; i++) {char c = s.charAt(i);if (c == '(' || c == '[' || c == '{') {//如果是左括号stack.push(c);}else {//右括号if (stack.isEmpty())  return false;char left = stack.pop();if (left == '(' &&  c != ')') return false;if (left == '[' &&  c != ']') return false;if (left == '{' &&  c != '}') return false;}}return stack.isEmpty();}
}
  1. 解法三:
import java.util.HashMap;
import java.util.Stack;public class _20_有效的括号 {private static HashMap<Character, Character> map = new HashMap<>();static {// key - value 键值对map.put('(', ')');map.put('[', ']');map.put('{', '}');}public boolean isValid3(String s) {Stack<Character> stack = new Stack<>();int len = s.length();for (int i = 0; i < len; i++) {char c = s.charAt(i);if (map.containsKey(c)) {//如果是左括号stack.push(c);}else {//右括号if (stack.isEmpty())  return false;if (c != map.get(stack.pop())) return false;}}return stack.isEmpty();}
}
http://www.lbrq.cn/news/2456677.html

相关文章:

  • 唐卡装饰集团 一站式超级体验店西安关键词优化软件
  • 东川网站制作怎样在百度上发表文章
  • 品牌策划网站建设旺道seo网站优化大师
  • 织梦网站地图生成网络推广员工作内容
  • 网页视频加速器优化软件
  • 网站建设费用报价单淘宝seo搜索引擎优化
  • 广州高端模板网站查询网站流量
  • 威客网站开发需求国外网站seo免费
  • 阿里云网站备案核验单舆情报告范文
  • 网站建设工具品牌有合肥网络推广平台
  • 红酒公司网站建设模板6841百度高级搜索首页
  • 做网站还能挣钱吗网络销售平台上市公司有哪些
  • 崇信县门户网站首页欧洲网站服务器
  • 麻将网站开发公司品牌策划公司排行榜
  • 17网站一起做网店 睡衣百度seo排名培训
  • 公司网站建设优帮云企业培训员工培训平台
  • 九江网站建设排行榜网络运营推广具体做什么工作
  • 静态网站怎么做优化深圳网络营销平台
  • 外贸网站建设制作google下载手机版
  • 廊坊那家做网站排行榜seo文章优化方法
  • 能否提供代码 网站建设产品推广的渠道有哪些
  • 合肥网站设计建设爱网站查询挖掘工具
  • 诸城做网站收费贵州二级站seo整站优化排名
  • 商会 网站模板优化营商环境心得体会
  • 做网站用什么数据库百度指数功能模块有哪些
  • 江北关键词优化排名seoseo快速排名外包
  • 酒店网站素材专业网站建设公司
  • 私密浏览器免费版图片外贸谷歌seo
  • 中铁快运关于网站建设郑州做网络优化的公司
  • wordpress 网站首页可以打开_其他页面打不开太原seo快速排名怎么样
  • [硬件电路-85]:一款高集成度热电制冷器(TEC)控制器芯片ADN8835ACPZ
  • python基础:request模块简介与安装、基本使用,如何发送get请求响应数据,response属性与请求头
  • [python][flask]Flask-Login 使用详解
  • 基于深度学习的图像分类:使用MobileNet实现高效分类
  • Vue3 面试题及详细答案120道(91-105 )
  • 排序初识(上)-- 讲解超详细