Stellen Sie sich die folgende 24-Stunden-Uhr vor, die mit den Pfeiltasten gesteuert werden kann:
╔══╗ ┌──┐
║00║:│00│
╚══╝ └──┘
HH mm
Zweimaliges Drücken des Aufwärtspfeils ( ↑↑
) erhöht die aktuell fokussierte Stundeneingabe:
╔══╗ ┌──┐
║02║:│00│
╚══╝ └──┘
HH mm
Durch Drücken des Rechtspfeils ( →
) wird die andere Eingabe fokussiert.
┌──┐ ╔══╗
│02│:║00║
└──┘ ╚══╝
HH mm
Durch dreimaliges Drücken des Abwärtspfeils ( ↓↓↓
) wird diese Eingabe nun verringert.
┌──┐ ╔══╗
│02│:║57║
└──┘ ╚══╝
HH mm
Kurz gesagt:
- Der Aufwärtspfeil (
↑
) erhöht den aktuell aktiven Eingang. - Der Abwärtspfeil (
↓
) verringert die aktive Eingabe. - Der rechte Pfeil (
→
) verschiebt den Fokus auf den rechten Eingang. - Der linke Pfeil (
←
) verschiebt den Fokus auf den linken Eingang. - Die Auf- und Abbewegung wird wie erwartet für eine Zeiteingabe wiederholt.
- Linke und rechte Bewegung laufen nicht umher.
Die Herausforderung
Die Uhr beginnt bei 00:00
aktivem Stundeneingang (siehe erstes Schema). Geben Sie bei einer Liste von Eingabebefehlen die resultierende Zeit im HH:mm
Format aus.
Die Eingabe kann entweder eine Zeichenfolge oder eine Liste (oder eine Ihrer Sprache entsprechende) sein, wobei die verschiedenen Eingaberichtungen eine der folgenden Optionen sein können:
↑↓←→
udlr
^v<>
- Die tatsächliche Pfeiltaste wird gedrückt, wenn Ihr Programm über eine grafische Benutzeroberfläche verfügt
Es gelten Standardlücken.
Testfälle
↑↑→↓↓↓ = 02:57
↓→↑←↑→↓ = 00:00
↓→→↓ = 23:59
←←←←→↑ = 00:01
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓→↓ = 23:59
0123
würde die Herausforderung in bestimmten Sprachen erheblich erleichtern, während andere davon nicht profitieren.