euisblue
20. Valid Parentheses

1class Solution { 2 public: 3 bool isValid(string s) { 4 vector<char> stack; 5 6 for(char c : s) { 7 if(c==40 || c==91 || c==123) { 8 stack.push_back(c); 9 } else { 10 if(stack.size() == 0) return false; 11 12 char p = stack.back(); 13 if((p==40 && c==41) || (p==91 && c==93) || (p==123 && c==125)) stack.pop_back(); 14 else return false; 15 } 16 } 17 18 return stack.size() == 0; 19 } 20};
1# @param {String} s 2# @return {Boolean} 3def is_valid(s) 4 return false if s[0] == ')' or s[0] == '}' or s[0] == ']' 5 return false if (s.size)&1 == 1 6 7 stack = [] 8 size = s.size 9 10 for i in 0...size do 11 if s[i] == '(' or s[i] == '[' or s[i] == '{' 12 stack.push(s[i]) 13 elsif s[i] == ')' 14 top = stack.pop 15 return false if top != '(' 16 elsif s[i] == ']' 17 top = stack.pop 18 return false if top != '[' 19 elsif s[i] == '}' 20 top = stack.pop 21 return false if top != '{' 22 end 23 end 24 return stack.empty? 25end