Algarismos significativos

Escreva uma função que receba a representação em string de um número inteiro ou decimal e retorne a quantidade de algarismos significativos do número.

Os algarismos significativos são uma parte importante da ciência porque fornecem uma maneira fácil de mostrar, de relance, a precisão de uma medição. Em geral, quanto mais algarismos significativos um número tiver, mais precisa será a medição.

Os algarismos significativos são calculados observando os dígitos de um número e determinando a quantidade total de dígitos que são "significativos". As regras para decidir quais dígitos são significativos são as seguintes:

  • Os dígitos diferentes de zero são significativos.
  • Os 0 que ficam entre dígitos diferentes de zero (independentemente da distância) são significativos.
  • Os 0 à esquerda de todos os dígitos diferentes de zero não são significativos.
  • Os 0 à direita de todos os dígitos diferentes de zero são significativos somente se o número contiver um ponto decimal ..
  • Se o número completo for igual a 0, retorne 0 para a quantidade de algarismos significativos.
  • Os sinais negativos não afetam a quantidade de algarismos significativos.

Exemplos

sigFigs("15030") ➞ 4

sigFigs("0.0067") ➞ 2

sigFigs("-290.00") ➞ 5

sigFigs("-8080.") ➞ 4

Observações

  • Cada entrada consiste nos dígitos 0-9, junto com no máximo um ponto decimal . e/ou um sinal negativo -.
  • O fato de dois números serem iguais não significa que eles tenham a mesma quantidade de algarismos significativos. Por exemplo, 1.02 tem 3 algarismos significativos, enquanto 1.020 tem 4.
  • A função deve lidar corretamente com números que começam com um ponto decimal.
  • Talvez expressões regulares sejam úteis para este problema.