private static bool AreBracketsValid(string input) { const string OPEN = "([{<"; const string CLOSE = ")]}>"; bool result = true; Stack s = new Stack(); foreach (char c in input) { // Push open characters to stack if (OPEN.Contains(c)) { s.Push(c); } // If close character matches open character, remove open character from stack else if (OPEN.IndexOf(s.Peek()) == CLOSE.IndexOf(c)) { s.Pop(); } // No match, invalid brackets else { result = false; break; } } return result; }