Strings com pontuação

Published by Mubashir Hassan in

O nível de aninhamento, neste desafio, refere-se à profundidade dos parênteses ao redor de um número inteiro. Por exemplo, na string "(5((10)8))", 5 tem um nível de aninhamento de 1 porque há um conjunto de parênteses ao seu redor, 10 tem um nível de aninhamento de 3 porque há 3 conjuntos de parênteses ao seu redor, e 8 tem um nível de aninhamento de 2.

Podemos pontuar essa string multiplicando cada número pelo seu nível de aninhamento e depois somando os resultados:

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

Crie uma função que receba uma string como argumento e retorne sua pontuação.

Exemplos

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

Observações

  • O aninhamento de todos os casos de teste é balanceado e logicamente consistente (não há parênteses faltando nem extras).
  • Os casos de teste contêm apenas números inteiros positivos.