minimum remove to make valid parentheses

🏠
 1class Solution(object):
 2    def minRemoveToMakeValid(self, s):
 3        stack = []
 4        invalid = []
 5        s = list(s)
 6        for i in range(len(s)):
 7            if s[i] == '(':
 8                stack.append(i)
 9            if s[i] == ')':
10                if stack:
11                    stack.pop()
12                else:
13                    invalid.append(i)
14        
15        for i in invalid + stack:
16            s[i] = ''
17        
18        return ''.join(s)
19
20print(Solution().minRemoveToMakeValid('a(b'))