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

java左右括号

java左右括号

    • 数据结构-栈
      • 栈的特点:先进后出
      • 代码实现

最近看到有小伙伴去面试,被人问起一道算法题,题目内容大概是:给定一个字符串,如:“[[]]{}”,判断字符串是否为有效的括号。考查的是数据结构,下面用的是java的栈实现左右括号的校验。

数据结构-栈

栈的特点:先进后出

代码实现

public static void main(String[] args) {input("([)]");input("}}");input("[[]]{}");}private static void input(String str) {boolean valid = valid(str);System.out.println(str + ": " + valid);}/*** 校验指定的字符串是否匹配** @param str 校验的字符串* @return true:匹配;false:不匹配*/private static boolean valid(String str) {char[] chars = str.toCharArray();Stack<Character> charsStack = new Stack<>();for (int i = 0; i < chars.length; i++) {if (chars[i] == '(' || chars[i] == '[' || chars[i] == '{') {//1. 左括号,则入栈charsStack.push(chars[i]);} else {//2. 右括号,则出栈比较if (charsStack.size() == 0) {//2.1 字符串不为空,但是栈无数据,即没有对应的左括号入栈,则不匹配return false;}//2.2 出栈的数据是否成对括号char pop = charsStack.pop();if (pop == '(' && chars[i] != ')') {return false;} else if (pop == '[' && chars[i] != ']') {return false;} else if (pop == '{' && chars[i] != '}') {return false;}}}//3. 出栈后的栈为空,则说明是成对出现,则匹配return charsStack.isEmpty();}

上述的代码,仅供参考!

http://www.lryc.cn/news/216605.html

相关文章:

  • 接口自动化测试 —— 工具、请求与响应
  • 【LeetCode:2103. 环和杆 | 模拟】
  • 微信小程序-授权登录(手机号码)
  • 视觉问答(VQA)12篇顶会精选论文合集,附常用数据集下载
  • 详解--编码(ASCII\Unicode,UTF-8\UTF-16\UTF-32)
  • Linux安装配置awscli命令行接口工具及其从aws上传下载数据
  • 中国联通携手华为助力长城精工启动商用5G-A柔性产线
  • 【自动化测试】Java+Selenium自动化测试环境搭建
  • 若依笔记(四):代码生成器
  • 怎样做好金融投资翻译
  • ubuntu 分区 方案
  • Python自动化测试面试题总结
  • 客户端性能测试基础知识
  • 多模态论文阅读之VLMo
  • 休闲类手游还有机会吗?两大策略收割全球玩家
  • Git复制代码
  • 数据结构笔记——查找、排序(王道408)
  • MySQL---搜索引擎
  • 2022最新版-李宏毅机器学习深度学习课程-P32 Transformer
  • 如何使用商品详情API接口获取商品数据:一篇详尽的论述
  • 华为:手机王者归来,汽车起死回生
  • Vue3.0 provide与inject依赖注入:VCA
  • 前端react入门day02-React中的事件绑定与组件
  • 工业5G路由器;小体积 千兆高速通信组网
  • 【深度学习基础】从R-CNN到Fast R-CNN,再到MaskR-CNN,发展历程讲清楚!
  • 面试算法51:节点值之和最大的路径
  • 阿里云 k8s 容器服务 设置节点为不可调度的两种方法有什么区别?
  • 新一代数据质量平台datavines
  • 建议收藏《2023华为海思实习笔试-数字芯片真题+解析》(附下载)
  • 【详细教程】关于如何使用GitGitHub的基本操作汇总GitHub的密钥配置 ->(个人学习记录笔记)