Description
Given a string containing just the characters ‘(‘, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
and ‘]‘
, determine if the input string is valid.
Example
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
Challenge
O(n)的时间,n为括号的个数
解题:括号匹配问题,用栈来做较为简单,代码如下:
public class Solution { /** * @param s: A string * @return: whether the string is a valid parentheses */ public boolean isValidParentheses(String s) { // write your code here Stack<Character>stack = new Stack<Character>(); for(int i = 0; i < s.length(); i++){ if(s.charAt(i) == ‘(‘ || s.charAt(i) == ‘{‘ || s.charAt(i) == ‘[‘){ stack.push(s.charAt(i)); }else{ //pop前要先检查栈是不是空的 if(!stack.isEmpty()){ switch(s.charAt(i)){ case ‘)‘: if(!stack.pop().equals(‘(‘)){ return false; } break; case ‘]‘: if(!stack.pop().equals(‘[‘)){ return false; } break; case ‘}‘: if(!stack.pop().equals(‘{‘)){ return false; } break; } }else{ return false; } } } if(stack.isEmpty()){ return true; }else{ return false; } } }
原文地址:https://www.cnblogs.com/phdeblog/p/9330723.html
时间: 2024-10-15 07:41:53