Tous les défis
Moyen 0 résolus 0 % de réussite

Plus grand produit de chiffres adjacents

Considérez chaque fenêtre contiguë de span chiffres et multipliez ses chiffres.

Considérez chaque fenêtre contiguë de span chiffres et multipliez ses chiffres. Retournez le plus grand produit obtenu. Les zéros initiaux sont des chiffres ordinaires ; une fenêtre contenant un zéro a un produit nul. Ne réordonnez ni ne sautez aucun chiffre.

Implémentez largest_adjacent_digit_product(digits, span).

Entrée

digits : La séquence de chiffres, y compris les éventuels zéros initiaux.

span : Le nombre exact de chiffres adjacents dans une fenêtre.

Sortie

Retournez le plus grand produit parmi toutes les fenêtres de cette largeur.

Contraintes

1 ≤ longueur de la chaîne de chiffres ≤ 100 000. Les caractères sont 0…9. 1 ≤ span ≤ min(18, longueur). Tous les produits tiennent dans un entier signé 64 bits.

Exemples

Exemple 1
Entrée :
span = 2
digits = "23405"

Sortie attendue :
expected = 12
Entrée :
long long span = 2;
std::string digits = "23405";

Sortie attendue :
long long expected = 12;
Entrée :
long span = 2;
string digits = "23405";

Sortie attendue :
long expected = 12;

Explication

Les fenêtres 23, 34, 40 et 05 ont pour produits 6, 12, 0 et 0. Le plus grand est 12.

Exemple 2
Entrée :
span = 3
digits = "102"

Sortie attendue :
expected = 0
Entrée :
long long span = 3;
std::string digits = "102";

Sortie attendue :
long long expected = 0;
Entrée :
long span = 3;
string digits = "102";

Sortie attendue :
long expected = 0;

Explication

Il n'y a qu'une seule fenêtre de largeur trois. Elle contient un zéro, donc 1 × 0 × 2 = 0.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.