Torna alle sfide
Facile 0 risolte 0% di accettazione

Ore, Minuti e Secondi

Converti una durata in secondi in una stringa compatta e leggibile.

Cosa imparerai

  • Dividere i secondi in ore, minuti e secondi
  • Usare insieme divisione e resto
  • Formattare le parti in una stringa leggibile

Problema

Dividi una durata in ore, minuti e secondi. Scrivi le unità come h, m e s, in quest'ordine, con uno spazio tra le unità. Ometti qualsiasi unità con valore zero, tranne che per zero secondi, che va scritto come 0s.

Implementa format_duration(seconds).

Input

seconds: La durata totale in secondi.

Output

Restituisci la durata formattata, ad esempio 2h 2m 5s.

Vincoli

0 ≤ seconds ≤ 1.000.000.000. Le ore possono superare 23; si tratta di una durata, non di un orario.

Esempi

Esempio 1
Input:
seconds = 7325

Output atteso:
expected = "2h 2m 5s"
Input:
long long seconds = 7325;

Output atteso:
std::string expected = "2h 2m 5s";
Input:
long seconds = 7325;

Output atteso:
string expected = "2h 2m 5s";

Spiegazione

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

Esempio 2
Input:
seconds = 120

Output atteso:
expected = "2m"
Input:
long long seconds = 120;

Output atteso:
std::string expected = "2m";
Input:
long seconds = 120;

Output atteso:
string expected = "2m";

Spiegazione

120 secondi sono esattamente 2 minuti. Ometti le ore e i secondi pari a zero.

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Scomponi i secondi totali prima nelle unità più grandi, poi formatta solo le parti non nulle.

Suggerimento 2

Mantieni ore, minuti e secondi in quest’ordine, con spazi tra le unità incluse.

Suggerimento 3

Se tutte le unità maggiori sono zero, assicurati comunque che l’output sia esattamente 0s quando la durata è zero.

Complessità attesa

tempo O(1), spazio aggiuntivo O(1)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.