力扣第23题 有效的括号
2021/12/25 23:12:42
本文主要是介绍力扣第23题 有效的括号,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目描述:
题目描述是 给定一个字符串 判断是否有效 ;
有效 : 左括号必须用相同类型的右括号闭合
左括号必须以正确的顺序闭合 。
解题思路:
我的想法是 既然 左括号必须以同类型的右括号闭合 且括号就3种 ()【】 {} 所有 使用一个哈希表 以 右边括号为键 以同类型的左边括号为值 即可 然后使用递归算法 使用一种栈结狗 如果遍历的是右边括号 就会把它放进栈结构中 为什么用栈 是因为 先进后出的特点 当遇到左边括号时 会及时取出刚才的右边括号 如果不同 就为false 然后 return掉即可 如果为同类型的 就继续判断 递归即可
大体死了就是这样
献上我的思路图 :
最后附上代码 :
package com.code; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class code_16 { public static Map<Character , Character> map = new HashMap<>(); public static Stack<Character> stack = new Stack<>(); public static boolean isOK = false ; public static void main(String[] args) { map.put('(' ,')'); map.put('[' ,']'); map.put('{' ,'}'); String str = "()[]{}"; fun(str , 0); } private static void fun(String str , int i) { if (i == str.length() ){ System.out.println(isOK); return; } if (str.charAt(i) == '(' || str.charAt(i) == '[' || str.charAt(i)=='{'){ stack.push(str.charAt(i)); }else { if (!stack.empty()){ if (str.charAt(i) == map.get(stack.pop())){ isOK = true ; }else { System.out.println(isOK); return; } } } fun(str ,i+1); } }
这篇关于力扣第23题 有效的括号的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀