Я хочу знать все возможные комбинации скобок для этого уравнения.
Я все готов, попробовал функцию, которая обеспечивает все сбалансированные скобки. Но проблема в том, что он не предоставляет опции для пустых пространств.
arr = []
def parens(left, right, string):
if left == 0 and right == 0:
arr.append(string)
if left > 0:
parens(left - 1, right + 1, string + "(")
if right > 0:
parens(left, right - 1, string + ")")
return arr
parentheses = ""
operator = ['+', '+', '//', '+', '*']
number = ['10', '6', '2', '6', '3', '1']
parentheses = parens(len(number) , 0, parentheses)
print(parentheses)
calculation2 = ""
#parentheses = ['(((((())))))', '((((()()))))'…...]
number_index = 0
calc_index = 0
for combi_parenthesis in range(len(parentheses)):
for parenthesis_index in range(0, 12, 2):
calculation2 += parentheses[combi_parenthesis][parenthesis_index]
calculation2 += number[number_index]
number_index += 1
calculation2 += parentheses[combi_parenthesis][parenthesis_index + 1]
if(calc_index <= 4):
calculation2 += operator[calc_index]
calc_index += 1
print(calculation2)
try:
b = eval(calculation2)
output2 = calculation2 + "=" + str(b) # converts int
print(output2)
except SyntaxError:
pass
b = ""
calculation2 = ""
number_index = 0
calc_index = 0
Один из примеров - это (10) + (6) + (2) // (6) + (3) *(1) = 19, но проблема в том, что я не получаю комбинации, например, с меньшим количеством скобок, например (10 + 6) + 2 // 6 + (3 * 1).
Мне нужны функции, которыеполучает мне комбинации скобок с пустыми пробелами, как. ['(', '', '', '', '', ')', '', ...]. Таким образом, весь набор скобок со всеми пробелами комбинации. Спасибо за ваше время, и я надеюсь, что вы можете мне помочь.