赞
踩
题目描述
给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列。
括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。
示例1
输入 "["
返回值 false
示例2
输入 "[]"
返回值 true
示例3
输入 "[()]"
返回值 true
题目分析
利用栈来进行判断,当遇到左括号时将其对应的右括号压入栈,当遇到右括号时与栈顶的元素进行比较,如果是同一种类型的括号则该组括号使用正确。
全部遍历字符串直到结束,判断栈是否为空,栈为空则括号全部使用正确。
下面是Java代码
import java.util.*; public class Solution { /** * * @param s string字符串 * @return bool布尔型 */ public boolean isValid (String s) { // write code here if(s == null || s.length() == 0){ return true; } Stack<Character> stack = new Stack<>(); int len = s.length(); for(int i = 0 ; i < len ; i++){ if(s.charAt(i) == '['){ stack.push(']'); }else if(s.charAt(i) == '('){ stack.push(')'); }else if(s.charAt(i) == '{'){ stack.push('}'); }else if(stack.isEmpty() || s.charAt(i) !=stack.pop()){ return false; } } return stack.isEmpty(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。