Your question is Balanced Brackets Coding. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
JustAnswer's expert response composer accepts expressions containing nested grouping symbols and quoted text. Implement a validator that determines whether every bracket is correctly matched and nested, while ignoring bracket characters inside quoted strings.
Given a string expression, return True if it is valid and False otherwise. Valid expressions contain matching pairs of (), [], and {}. Brackets must be properly nested. Text outside brackets is allowed. A quoted string begins and ends with either a single quote (') or double quote ("), and brackets inside quoted strings are ordinary characters. A backslash escapes the next character inside a quoted string. An unterminated quoted string makes the expression invalid.
The function must process the expression in one left-to-right pass without removing characters or using regular expressions.
def has_balanced_brackets(expression):