Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Hours, Minutes, and Seconds

Convert a duration in seconds to a compact readable string.

Lo que aprenderás

  • Split seconds into hours, minutes and seconds
  • Use division and remainder together
  • Format parts into a readable string

Problema

Ver traducción

Split a duration into hours, minutes, and seconds. Write units as h, m, and s, in that order, with one space between units. Omit any zero-valued unit, except that zero seconds is written as 0s.

Implement format_duration(seconds).

Input

seconds: The total duration in seconds.

Output

Return the formatted duration, for example 2h 2m 5s.

Restricciones

0 ≤ seconds ≤ 1,000,000,000. Hours may exceed 23; this is a duration, not a time of day.

Ejemplos

Ejemplo 1
Entrada:
seconds = 7325

Salida esperada:
expected = "2h 2m 5s"
Entrada:
long long seconds = 7325;

Salida esperada:
std::string expected = "2h 2m 5s";
Entrada:
long seconds = 7325;

Salida esperada:
string expected = "2h 2m 5s";

Explicación

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

Ejemplo 2
Entrada:
seconds = 120

Salida esperada:
expected = "2m"
Entrada:
long long seconds = 120;

Salida esperada:
std::string expected = "2m";
Entrada:
long seconds = 120;

Salida esperada:
string expected = "2m";

Explicación

120 seconds is exactly 2 minutes. Omit the zero hours and seconds.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Break the total seconds into larger units first, then format only the nonzero parts.

Pista 2

Keep hours, minutes, and seconds in that order, with spaces between included units.

Pista 3

If every larger unit is zero, still make sure the output is exactly 0s when the duration is zero.

Complejidad esperada

O(1) time, O(1) extra space

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.