class MatchingBrackets { bool isPaired(String input) { final Map bracketPairs = { '}': '{', ']': '[', ')': '(', }; final List openBrackets = bracketPairs.values.toList(); final List closeBrackets = bracketPairs.keys.toList(); final List stack = []; for (final char in input.runes.map((rune) => String.fromCharCode(rune))) { if (openBrackets.contains(char)) { stack.add(char); } else if (closeBrackets.contains(char)) { if (stack.isEmpty || stack.last != bracketPairs[char]) { return false; } stack.removeLast(); } } return stack.isEmpty; } }