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 que rodean a un entero. Por ejemplo, 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, de la siguiente manera:

"(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

scoreIt("()") ➞ 0

scoreIt("4(123)") ➞ 123
// 4*0 + 123*1 = 123

scoreIt("((((1)2)3)4)") ➞ 20
// 1*4 + 2*3 + 3*2 + 4*1 = 20

scoreIt("(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.