Problema
Divida uma duração em horas, minutos e segundos. Escreva as unidades como h, m e s, nessa ordem, com um espaço entre as unidades. Omitir qualquer unidade com valor zero, exceto que zero segundos deve ser escrito como 0s.
Implemente format_duration(seconds).
Entrada
seconds: A duração total em segundos.
Saída
Retorne a duração formatada, por exemplo 2h 2m 5s.
Restrições
0 ≤ seconds ≤ 1.000.000.000. As horas podem exceder 23; isto é uma duração, não um horário do dia.
Exemplos
Entrada:
seconds = 7325
Saída esperada:
expected = "2h 2m 5s"
Entrada:
long long seconds = 7325;
Saída esperada:
std::string expected = "2h 2m 5s";
Entrada:
long seconds = 7325;
Saída esperada:
string expected = "2h 2m 5s";
Explicação
7325 = 2 × 3600 + 2 × 60 + 5.
Entrada:
seconds = 120
Saída esperada:
expected = "2m"
Entrada:
long long seconds = 120;
Saída esperada:
std::string expected = "2m";
Entrada:
long seconds = 120;
Saída esperada:
string expected = "2m";
Explicação
120 segundos são exatamente 2 minutos. Omitir as horas e segundos zerados.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Quebre o total de segundos em unidades maiores primeiro e depois formate só as partes não nulas.
Dica 2
Mantenha horas, minutos e segundos nessa ordem, com espaços entre as unidades incluídas.
Dica 3
Se todas as unidades maiores forem zero, ainda assim a saída deve ser exatamente 0s quando a duração for zero.
Complexidade esperada
O(1) tempo, O(1) espaço extra
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.