ex: return true for
{}
{[()]}
{()[]}
return false for
{
}
bool bracketMatching(char[] str):
bool result = true
Stack stack = new Stack()
//close-open bracket map
Hashmap bracketMap = new Hashmap()
bracketMap.Add('}', '{')
bracketMap.Add(')', '(')
bracketMap.Add(']', '[')
foreach (char c in str):
if (c == '{' || c == '[' || c == '('):
stack.Push(c)
if (c == '}' || c == ']' || c == ')'):
if (stack.isEmpty()): result = false
break
//tos should be open bracket and c close bracket
char tos = stack.Pop()
if (tos != bracketMap[c]):
result = false
break
if (!stack.isEmpty()):
result = false
return result
[Hat tip to BR]

0 comments:
Post a Comment