void main() { String s = "([}}])"; print(Solution().isValid(s)); } class Solution { bool isValid(String s) { List stack = []; if (s.length % 2 != 0) { return false; } for (int i = 0; i < s.length; i++) { if (s[i] == '{' || s[i] == '[' || s[i] == '(') { stack.add(s[i]); } else if (s[i] == "}" && stack.isNotEmpty && stack.last == '{') { stack.removeLast(); } else if (s[i] == "]" && stack.isNotEmpty && stack.last == '[') { stack.removeLast(); } else if (s[i] == ")" && stack.isNotEmpty && stack.last == '(') { stack.removeLast(); } else return false; } return stack.isEmpty; } }