def has_poor_grammar(token_strings):
    """
    Returns whether the output has an odd number of double quotes or if it does not have balanced
    parentheses.
    """
    has_open_left_parens = False
    quote_count = 0

    for token in token_strings:
        if token == '(':
            if has_open_left_parens:
                return True
            else:
                has_open_left_parens = True
        elif token == ')':
            if has_open_left_parens:
                has_open_left_parens = False
            else:
                return True
        elif token == '"':
            quote_count += 1

    return quote_count % 2 == 1 or has_open_left_parens