Imagine o seguinte relógio de 24 horas que pode ser controlado por teclas de seta:
╔══╗ ┌──┐
║00║:│00│
╚══╝ └──┘
HH mm
Pressionar a seta para cima duas vezes ( ↑↑
) aumentará a entrada de hora focada no momento:
╔══╗ ┌──┐
║02║:│00│
╚══╝ └──┘
HH mm
Pressionar a seta para a direita ( →
) focalizará a outra entrada.
┌──┐ ╔══╗
│02│:║00║
└──┘ ╚══╝
HH mm
Pressionar a seta para baixo três vezes ( ↓↓↓
) agora diminuirá esta entrada.
┌──┐ ╔══╗
│02│:║57║
└──┘ ╚══╝
HH mm
Em breve:
- A seta para cima (
↑
) aumentará a entrada atualmente ativa. - A seta para baixo (
↓
) diminuirá a entrada ativa. - A seta direita (
→
) moverá o foco para a entrada direita. - A seta esquerda (
←
) moverá o foco para a entrada esquerda. - O movimento para cima e para baixo girará como esperado para uma entrada de tempo.
- Os movimentos esquerdo e direito não circulam.
O desafio
O relógio começa 00:00
com a entrada da hora ativa (consulte o primeiro esquema). Dada uma lista de comandos de entrada, produza a hora resultante em HH:mm
formato.
A entrada pode ser uma sequência ou uma lista (ou o idioma equivalente), onde as diferentes direções de entrada podem ser uma das opções abaixo:
↑↓←→
udlr
^v<>
- a tecla de seta real pressiona se o seu programa tiver uma GUI
Aplicam-se brechas padrão.
Casos de teste
↑↑→↓↓↓ = 02:57
↓→↑←↑→↓ = 00:00
↓→→↓ = 23:59
←←←←→↑ = 00:01
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓→↓ = 23:59
0123
) facilitaria muito o desafio em determinados idiomas, sem beneficiar outros.