Trilhas
/
Python
Python
/
Exercícios
/
Maior Produto de uma Série
Maior Produto de uma Série

Maior Produto de uma Série

Médio

Introdução

Você trabalha para uma agência governamental que interceptou uma série de sinais de comunicação criptografados de um grupo de ladrões de banco. Os sinais contêm uma longa sequência de dígitos. Sua equipe precisa usar diversas técnicas de processamento digital de sinais para analisar esses sinais e identificar padrões que possam indicar o planejamento de um assalto.

Instruções

Sua tarefa é procurar padrões na longa sequência de dígitos do sinal criptografado.

A técnica que você vai usar aqui se chama maior produto de série.

Vamos definir alguns termos primeiro.

  • entrada: a sequência de dígitos que você precisa analisar
  • série: uma sequência de dígitos adjacentes (aqueles que ficam um ao lado do outro) contida na entrada
  • comprimento: quantos dígitos cada série tem
  • produto: o que você obtém quando multiplica números entre si

Vamos ver um exemplo, com a entrada "63915".

  • Para formar uma série, pegue dígitos adjacentes na entrada original.
  • Se você estiver trabalhando com um comprimento de 3, haverá três séries possíveis:
    • "639"
    • "391"
    • "915"
  • Agora precisamos calcular o produto de cada série:
    • O produto da série "639" é 162 (6 × 3 × 9 = 162)
    • O produto da série "391" é 27 (3 × 9 × 1 = 27)
    • O produto da série "915" é 45 (9 × 1 × 5 = 45)
  • 162 é maior que 27 e que 45, então o maior produto de série de "63915" vem da série "639". Logo, a resposta é 162.

Mensagens de exceção

Às vezes, é necessário lançar uma exceção. Quando você faz isso, deve sempre incluir uma mensagem de erro significativa que indique qual é a origem do erro. Isso deixa seu código mais legível e ajuda bastante na depuração. Em situações em que você sabe que a origem do erro será de um determinado tipo, você pode optar por lançar um dos tipos de erro embutidos, mas ainda deve incluir uma mensagem significativa.

Este exercício em particular exige que você use a instrução raise para "lançar" um ValueError quando sua função largest_product() receber uma entrada inválida. Os testes só vão passar se você fizer o raise da exception e incluir uma mensagem junto. Fique à vontade para reutilizar seu código do exercício series!

Para lançar um ValueError com uma mensagem, escreva a mensagem como argumento do tipo exception:

# span of numbers is longer than number series
raise ValueError("span must not exceed string length")

# span of number is negative
raise ValueError("span must not be negative")

# series includes non-number input
raise ValueError("digits input must only contain digits")
Editar via GitHub O link abre em uma nova janela ou aba
Python Exercism

Tudo pronto para começar Maior Produto de uma Série?

Crie sua conta no Exercism para aprender e dominar Python com 17 conceitos146 exercícios e mentoria humana de verdade, tudo de graça.