经典程序|数据结构之用栈来解决括号匹配问题(Java实现)

【经典程序|数据结构之用栈来解决括号匹配问题(Java实现)】1.知识储备
经典程序|数据结构之用栈来解决括号匹配问题(Java实现)
文章图片

2.问题分析
经典程序|数据结构之用栈来解决括号匹配问题(Java实现)
文章图片

3.代码实现

package Stack; public class BracketMatchTest { public static void main(String[] args) { String str="(长安城(上海)()"; boolean match=isMatch(str); System.out.println(str+"中的括号匹配情况:"+match); } /* * 判断str中的括号是否匹配 * str括号组成的字符串 * 如果匹配则返回true,不匹配则返回false */ public static boolean isMatch(String str){ //1.创建栈对象,用来存储左括号 Stack chars= new Stack(); //2.从左往右遍历字符串 for(int i=0; i.length(); i++){ String character=str.charAt(i)+""; //获取当前字符,因为此时我们的栈的泛型是string类型的,所以我们需要把当前字符转换成string类型 //3.判断当前字符是否为左括号,如果是,则把字符放入到栈中 if(character.equals("(")){ chars.push(character); } //4.继续判断当前字符是否为右括号,如果是,则从栈中弹出一个左括号,并判断弹出的结果是否为null,如果为nll,证明没有匹配的左括号, //如果不为null,则证明有匹配的左括号 else if(character.equals(")")){ String pop=chars.pop(); if(pop==null){ return false; } } } //5.判断栈中还有没有剩余的左括号,如果有,则证明不匹配 if(chars.size()==0){ return true; }else{ return false; } } }

    推荐阅读