Java栈的应用之括号匹配算法实例分析

 更新时间:2020年12月04日 17:27:49   作者:WFaceBoss  
这篇文章主要介绍了Java栈的应用之括号匹配算法,结合实例形式分析了Java使用栈实现括号匹配算法的相关原理、操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了Java栈的应用之括号匹配算法。分享给大家供大家参考,具体如下:

1、LeetCode官网

  • 美网:https://leetcode.com/
  • 中文网 :https://leetcode-cn.com/

英语不咋地,所以选择此处选择中文网来进行测试。

2、LeetCode中获取第20号题目

(1)搜索20号题目

(2)查看题目

 (3)根据题目要求,首先在本地编辑器中完善20号题目的代码--使用java提供的Stack类,代码如下:

class Solution {
 public boolean isValid(String s) {
  Stack<Character> stack=new Stack<Character>();
  for (int i=0;i<s.length();i++){
   char c=s.charAt(i);
   if(c=='('||c=='['||c=='{'){
    stack.push(c);
   }else {
    if(stack.isEmpty())
     return false;

    char topChar=stack.pop();
    if(c==')'&&topChar!='(')
     return false;
    if (c==']'&&topChar!='[')
     return false;

    if(c=='}'&&topChar!='{')
     return false;
   }
  }
  return stack.isEmpty();
 }
}

(4)将代码提交到LeetCode代码验证是否通过

这样就完成了括号匹配的相关要求,而且是通过Leetcode来完成的,我感觉太酷了~

下一节我们将继续学习一个关于Leetcode的知识。

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • java控制台实现学生信息管理系统(集合版)

    java控制台实现学生信息管理系统(集合版)

    这篇文章主要为大家详细介绍了java控制台实现学生信息管理系统的集合版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • java文件操作代码片断实例实现统计文件中字母出现的个数功能

    java文件操作代码片断实例实现统计文件中字母出现的个数功能

    本文介绍java读文件实例,实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数,除此之外没有其他字符,大家参考使用吧
    2014-01-01
  • 如何安装jdk及安装MyEclipse的图文教程

    如何安装jdk及安装MyEclipse的图文教程

    这篇文章主要介绍了如何安装jdk及安装MyEclipse的图文教程,需要的朋友可以参考下
    2018-03-03
  • 如何通过idea实现springboot集成mybatis

    如何通过idea实现springboot集成mybatis

    这篇文章主要介绍了如何通过idea实现springboot集成mybatis,使用springboot 集成 mybatis后,通过http请求接口,使得通过http请求可以直接操作数据库,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Java中的ThreadLocal详解

    Java中的ThreadLocal详解

    THreadLocalMap中的Entry的key使用的是ThreadLocal对象的弱引用,在没有其他地方对ThreadLoca依赖,ThreadLocalMap中的ThreadLocal对象就会被回收掉,但是对应的不会被回收,具体内容请和小编一起看下面文章详情
    2021-09-09
  • 最常用的1000个Java类(附代码示例)

    最常用的1000个Java类(附代码示例)

    这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下
    2015-04-04
  • Spring maven filtering使用方法详解

    Spring maven filtering使用方法详解

    这篇文章主要介绍了Spring maven filtering使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java字符串无意识的递归过程解析

    Java字符串无意识的递归过程解析

    这篇文章主要介绍了Java字符串无意识的递归过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java中典型的内存泄露问题和解决方法

    Java中典型的内存泄露问题和解决方法

    这篇文章主要介绍了Java中典型的内存泄露问题和解决方法,典型的内存泄露例子是一个没有实现hasCode和 equals方法的Key类在HashMap中保存的情况,可以通过实现Key类的equals和hasCode方法解决这种内存泄漏问题,需要的朋友可以参考下
    2014-04-04
  • 解决springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

    解决springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

    开发过程中发现查询返回的数据出现自定义的JavaBean的属性值大小写格式出现问题,导致前端无法接受到数据,目前有四种解决方法,根据大佬的经验之谈,前两种是最简单便捷的,后两种是比较通用的方法,需要的朋友可以参考下
    2023-10-10

最新评论