赞
踩
public class Solution{ public boolean isValid(String s) { // 空字符串可被认为是有效字符串 if (s.length() == 0) { return true; } HashMap<Character, Character> hm = new HashMap<>(); hm.put('(', ')'); hm.put('[', ']'); hm.put('{', '}'); Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); // 如果是左括号,入栈 if (hm.containsKey(c)) { stack.push(c); } // 如果是右括号 else { // 如果能匹配,注意出栈之前都要判断栈是否为空 if (! stack.isEmpty() && hm.get(stack.peek()) == c) { stack.pop(); } else { return false; } } } // 如果字符串只有一个左括号会出错,所以要判断栈是否为空 return stack.isEmpty() ? true : false; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。