js 版本
/** * @param {string} s * @return {boolean} */ var isValid = function(s) { let stack = []; for(let i=0;i<s.length;i++) { let c = s[i]; if(c === '(' || c === '[' || c === '{') { stack.push(c) } else { if(stack.length ===0 ) { return false; } let topChar = stack.pop(); if(c === ')' && topChar != '(') return false; if(c === ']' && topChar !== '[') return false; if(c === '}' && topChar !== '{') return false; } } if(stack.length == 0){ return true } else{ return false; } };
java 版本
import java.util.Stack; class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for(int i = 0 ; i < s.length() ; i ++){ char c = s.charAt(i); if(c == '(' || c == '[' || c == '{') stack.push(c); else{ if(stack.isEmpty()) return false; char topChar = stack.pop(); if(c == ')' && topChar != '(') return false; if(c == ']' && topChar != '[') return false; if(c == '}' && topChar != '{') return false; } } return stack.isEmpty(); } public static void main(String[] args) { System.out.println((new Solution()).isValid("()[]{}")); System.out.println((new Solution()).isValid("([)]")); } }