自学内容网 自学内容网

Java数据结构应用(力扣题20. 有效的括号)

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()[]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

创建一个栈,左括号入栈,右括号出栈,进行括号匹配的判断,注意最好要返回的是栈内元素的个数

class Solution {
     public  boolean isValid(String s) {
        char cz;
        Stack<Character> stack=new Stack();
     if(s==null||s.length()==0)
     {
         return true;
     }
     else{
         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;
                 }
                 else
                     cz = stack.pop();
                 if(((cz=='{'&&c=='}')||(cz=='['&&c==']')||(cz=='('&&c==')')))
                 {
                       
             }
                 else
                     return false;
             }

         }

     }
        return stack.isEmpty();
    }
}


原文地址:https://blog.csdn.net/2301_77721901/article/details/142220222

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!