Retour aux défis
Facile 0 résolus 0 % de réussite

Heures, minutes et secondes

Convertir une durée en secondes en une chaîne lisible et compacte.

Ce que vous allez apprendre

  • Découper des secondes en heures, minutes et secondes
  • Utiliser ensemble division et reste
  • Formater les parties en une chaîne lisible

Problème

Divisez une durée en heures, minutes et secondes. Écrivez les unités sous la forme h, m et s, dans cet ordre, avec un espace entre chaque unité. Omettez toute unité dont la valeur est zéro, sauf que zéro seconde s'écrit 0s.

Implémentez format_duration(seconds).

Entrée

seconds : La durée totale en secondes.

Sortie

Retournez la durée formatée, par exemple 2h 2m 5s.

Contraintes

0 ≤ seconds ≤ 1 000 000 000. Le nombre d'heures peut dépasser 23 ; il s'agit d'une durée, pas d'une heure de la journée.

Exemples

Exemple 1
Entrée :
seconds = 7325

Sortie attendue :
expected = "2h 2m 5s"
Entrée :
long long seconds = 7325;

Sortie attendue :
std::string expected = "2h 2m 5s";
Entrée :
long seconds = 7325;

Sortie attendue :
string expected = "2h 2m 5s";

Explication

7325 = 2 × 3600 + 2 × 60 + 5.

Exemple 2
Entrée :
seconds = 120

Sortie attendue :
expected = "2m"
Entrée :
long long seconds = 120;

Sortie attendue :
std::string expected = "2m";
Entrée :
long seconds = 120;

Sortie attendue :
string expected = "2m";

Explication

120 secondes correspondent exactement à 2 minutes. Omettez les heures et secondes à zéro.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Décompose le total de secondes en unités plus grandes d’abord, puis formate seulement les parties non nulles.

Indice 2

Garde les heures, minutes et secondes dans cet ordre, avec des espaces entre les unités incluses.

Indice 3

Si toutes les unités plus grandes valent zéro, assure-toi quand même que la sortie soit exactement 0s quand la durée est nulle.

Complexité attendue

temps O(1), espace supplémentaire O(1)

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.