Strings com pontuação

Published by Mubashir Hassan in

O nível de aninhamento, neste desafio, refere-se à profundidade dos parênteses que envolvem 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, da seguinte forma:

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

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

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.