Files
2023-11-07 01:27:43 +02:00

54 lines
1.2 KiB
Python

from collections import deque
def balance(s):
brackets = 0
right_brackets_for_stars = 0
stars = []
list = deque(s)
star_count = 0
# print(list)
for x in list:
if x == "*":
star_count += 1
if star_count != 0:
if x == ")":
right_brackets_for_stars += 1
for x in list:
if x == "(":
brackets += 1
elif x == ")":
if brackets <= 0:
return None
brackets -= 1
elif x == "*":
if star_count == 1:
stars.append(brackets)
brackets = 0
star_count -= 1
elif star_count != 0:
stars.append(1)
star_count -= 1
brackets -= 1
if brackets < 0:
return None
if brackets != 0:
return None
return stars
if __name__ == "__main__":
print(balance("*(*")) # None
print(balance("*(")) # None
print(balance("(*")) # [1]
print(balance("(())")) # []
print(balance("(((((*")) # [5]
print(balance("(((((*(")) # None
print(balance("((((*(()*()*")) # [2,2,1]
print(balance("((*))(((*")) # None