def iterator(string):
length = len(string)
listOfIndices = []
for i in range(length):
if string[i] == '(':
stillValid = findMatch(i, string, listOfIndices)
if not stillValid:
return False
for i in range(length):
if string[i] == ')':
if i not in listOfIndices:
return False
return True
def findMatch(currIndex, string, listOfIndices):
length = len(string)
if currIndex == length -1:
return False
for i in range(currIndex+1,length):
if i not in listOfIndices:
if string[i]==')':
listOfIndices.append(i)
return True
return False
def main():
string = "(())("
print iterator(string)
string = "("
print iterator(string)
string = "hey)"
print iterator(string)
string = ")()()()("
print iterator(string)
string = "(()()(mnmn)00)" #should be valid
print iterator(string)