栈应用—字符串括号匹配问题
2021/4/13 18:55:41
本文主要是介绍栈应用—字符串括号匹配问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
利用栈,可以解决一些算法问题,比如括号匹配、逆波兰表达式...
以下demo,解决括号匹配问题:
BracketStr.java
/** * @Author: ltx * @Description: 栈应用-字符串括号匹配问题 */ public class BracketStr { private static Boolean isValid(String str) { //拆成char[] char[] chars = str.toCharArray(); Stack<Character> left = new Stack<>(); for (Character ch : chars) { //遇左括号,放入栈中 if (ch.equals('{') || ch.equals('(') || ch.equals('[')) { left.push(ch); } //遇右括号,先判空,然后判断成对,不成对的则为不匹配 if (ch.equals('}') || ch.equals(')') || ch.equals(']')) { //判断栈空 if (left.isEmpty()) { return false; } } //判断成对 if (ch.equals('}')) { if (!left.pop().equals('{')) { return false; } } if (ch.equals(')')) { if (!left.pop().equals('(')) { return false; } } if (ch.equals(']')) { if (!left.pop().equals('[')) { return false; } } } //判断栈空 if (left.isEmpty()) { return true; } return false; } public static void main(String[] args) { // String str = "kh(((we)w(fwe)(456)[34][{{66555}}]56))6655"; // String str = "sagjhsjakldgh2357465768"; // String str = "[][]()(){}"; String str = "we[]sd12[]23()]we(546456)dd{r6789679}"; System.out.println(isValid(str)); } }
这篇关于栈应用—字符串括号匹配问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门