Problem
Teile eine Dauer in Stunden, Minuten und Sekunden auf. Schreibe die Einheiten als h, m und s, in genau dieser Reihenfolge, jeweils mit einem Leerzeichen zwischen den Einheiten. Lasse jede Einheit mit dem Wert Null weg, außer dass null Sekunden als 0s geschrieben werden.
Implementiere format_duration(seconds).
Eingabe
seconds: Die Gesamtdauer in Sekunden.
Ausgabe
Gib die formatierte Dauer zurück, zum Beispiel 2h 2m 5s.
Einschränkungen
0 ≤ seconds ≤ 1.000.000.000. Die Stunden können größer als 23 sein; es handelt sich um eine Dauer, nicht um eine Tageszeit.
Beispiele
Eingabe:
seconds = 7325
Erwartete Ausgabe:
expected = "2h 2m 5s"
Eingabe:
long long seconds = 7325;
Erwartete Ausgabe:
std::string expected = "2h 2m 5s";
Eingabe:
long seconds = 7325;
Erwartete Ausgabe:
string expected = "2h 2m 5s";
Erläuterung
7325 = 2 × 3600 + 2 × 60 + 5.
Eingabe:
seconds = 120
Erwartete Ausgabe:
expected = "2m"
Eingabe:
long long seconds = 120;
Erwartete Ausgabe:
std::string expected = "2m";
Eingabe:
long seconds = 120;
Erwartete Ausgabe:
string expected = "2m";
Erläuterung
120 Sekunden sind genau 2 Minuten. Die null Stunden und Sekunden werden weggelassen.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Zerlege die Gesamtsekunden zuerst in größere Einheiten und formatiere dann nur die nichtnullen Teile.
Hinweis 2
Behalte Stunden, Minuten und Sekunden in genau dieser Reihenfolge, mit Leerzeichen zwischen den verwendeten Einheiten.
Hinweis 3
Wenn alle größeren Einheiten 0 sind, muss die Ausgabe bei Dauer 0 trotzdem genau 0s sein.
Erwartete Komplexität
Zeit O(1), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.