码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode算法01 Valid Parentheses

时间:2017-04-12 02:18:50      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:[]   测试   util   ret   log   创建   sub   移除   算法   

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

标签:[]   测试   util   ret   log   创建   sub   移除   算法   

原文地址:http://www.cnblogs.com/binggo2020/p/6696962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!