栈的应用场景(二)

有效的括号匹配

    • 1.题目
    • 2.图分析
    • 3.代码实现

1.题目

栈的应用场景(二)_第1张图片

2.图分析

栈的应用场景(二)_第2张图片

3.代码实现

class Solution {
    public boolean isValid(String s) {
       //创建一个栈,来放左括号.
       Stack<Character> stack = new Stack<>();
       //遍历字符串,左括号放进栈
       for(int i = 0 ; i < s.length(); i++){
           char ch = s.charAt(i);
           //如果是左括号
           if(ch == '[' || ch == '(' || ch == '{'){
               stack.push(ch);
           }
           else
           {
               //证明是右括号
               if(stack.empty()){
                   return false;
               }
               //开始匹配
               char ch2 = stack.peek();
               if((ch2=='('&&ch==')')||(ch2=='['&&ch==']')||(ch2=='{'&&ch=='}')){
                   stack.pop();
               }
               else{
                   return false;
               }
           }
       }
       if(!stack.empty()){
           return false;
       }
       return true;
    }
}

你可能感兴趣的:(java,开发语言,数据结构)