diff options
Diffstat (limited to 'sources')
-rw-r--r-- | sources/__init__.py | 0 | ||||
-rw-r--r-- | sources/check_bracket.py | 35 |
2 files changed, 35 insertions, 0 deletions
diff --git a/sources/__init__.py b/sources/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/sources/__init__.py diff --git a/sources/check_bracket.py b/sources/check_bracket.py new file mode 100644 index 0000000..bd7fa6e --- /dev/null +++ b/sources/check_bracket.py @@ -0,0 +1,35 @@ +# Uses python3 +def check_bracket(exp): + char_stack = [] + unmatched_opening_bracket = 0 + count = 0 + brackets = ['[', ']', '(', ')', '{', '}'] + for i in range(len(exp)): + c = exp[i] + if c not in brackets: + count = count + 1 + continue + if c == '[' or c == '(' or c == '{': + char_stack.append(c) + count = count + 1 + unmatched_opening_bracket = count + else: + if len(char_stack) == 0: + return i + 1 + top = char_stack[-1] + del (char_stack[-1]) + if (top == '[' and c != ']') or (top == '(' and c != ')') or (top == '{' and c != '}'): + return i + 1 + else: + unmatched_opening_bracket = unmatched_opening_bracket - 1 + count = count + 1 + if len(char_stack) == 0: + return "Success" + else: + if unmatched_opening_bracket > 0: + return unmatched_opening_bracket + return count + + +exp = input() +print(check_bracket(exp)) |