public int GetBracketMismatch(string code)
{
Dictionary<char, char> bracketMap = new Dictionary<char, char>()
{ {'{', '}'}, {'(', ')'}, {'[', ']'}, {'<', '>'} };//, {'\'', '\''} }; //{} () [] <> "" ''
Stack<char> bracketStack = new Stack<char>();
int counter = 0;
foreach (char c in code)
{
if("(){}<>".Contains(c))
{
if (!")}>".Contains(c))
{
bracketStack.Push(c);
}
else if (bracketMap.Any(q => q.Key == bracketMap[bracketStack.Last()]))
{
bracketStack.Pop();
}
else
{
return counter;
}
}
counter++;
}
return -1;
}