LeetCode算法01 Valid Parentheses

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode算法01 Valid Parentheses相关的知识,希望对你有一定的参考价值。

Given a string containing just the characters ‘(‘‘)‘‘{‘‘}‘‘[‘ and ‘]‘, determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

技术分享

先解释一下:

技术分享

本题要求:给一个包含“{”,“[”,“(”,")","]","}"  String,判断一下输入的string 结构是否合法; 这些括弧必须遵循正确的规则。

solution:

public boolean isValid(String s) {
    Stack<Character> stack = new Stack<Character>();
    for (char c : s.toCharArray()) {
        if (c == ‘(‘)
            stack.push(‘)‘);
        else if (c == ‘{‘)
            stack.push(‘}‘);
        else if (c == ‘[‘)
            stack.push(‘]‘);
        else if (stack.isEmpty() || stack.pop() != c)
            return false;
    }
    return stack.isEmpty();
}

借着本体的答案讲解一下Stack类;

Stack 为java.util包下类:

构造方法

  Stack();创建一个空 Stack。 

E push(E item)   
         把项压入堆栈顶部。   
E pop()   
         移除堆栈顶部的对象,并作为此函数的值返回该对象。   
E peek()   
         查看堆栈顶部的对象,但不从堆栈中移除它。   
boolean empty()   
         测试堆栈是否为空。    
int search(Object o)   
         返回对象在堆栈中的位置,以 1 为基数。  

 

 

 

 

 

以上是关于LeetCode算法01 Valid Parentheses的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode算法题-Valid Perfect Square(Java实现-四种解法)

LeetCode算法Valid Parentheses

LeetCode 有效的括号,Valid Parentheses

leetcode367. Valid Perfect Square]

LeetCode记录之20——Valid Parentheses

LeetCode 409: Valid Word Abbreviation