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:00com a entrada da hora ativa (consulte o primeiro esquema). Dada uma lista de comandos de entrada, produza a hora resultante em HH:mmformato.
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.