Cadenas con puntuación

Published by Mubashir Hassan in

El nivel de anidamiento, en este desafío, se refiere a la profundidad de los paréntesis alrededor de un entero. Por ejemplo, en la cadena "(5((10)8))", 5 tiene un nivel de anidamiento de 1 porque tiene un conjunto de paréntesis a su alrededor, 10 tiene un nivel de anidamiento de 3 porque tiene 3 conjuntos de paréntesis a su alrededor, y 8 tiene un nivel de anidamiento de 2.

Podemos puntuar esta cadena multiplicando cada número por su nivel de anidamiento y luego sumando los resultados:

"(5((10)8))" ➞ 5*1 + 10*3 + 8*2 ➞ 51

Crea una función que reciba una cadena como argumento y devuelva su puntuación.

Ejemplos

score_it("()") ➞ 0

score_it("4(123)") ➞ 123
# 4*0 + 123*1 = 123

score_it("((((1)2)3)4)") ➞ 20
# 1*4 + 2*3 + 3*2 + 4*1 = 20

score_it("(6)8((34(7)))") ➞ 95
# 6*1 + 8*0 + 34*2 + 7*3 = 95

Notas

  • El anidamiento de todos los casos de prueba está equilibrado y es lógicamente coherente (no faltan paréntesis ni hay paréntesis adicionales).
  • Los casos de prueba contienen solo enteros positivos.