Sua tarefa é decifrar uma string não vazia que consiste em caracteres ASCII imprimíveis no intervalo [32..126] .
Lendo o caractere de string por caractere:
- sempre que encontrar uma letra em minúscula, associe-a à próxima letra em maiúscula, começando com 'A'
- sempre que encontrar uma letra maiúscula, substitua-a pela letra minúscula à qual está associado
- outros caracteres não requerem processamento especial e permanecem inalterados
Exemplo
Para a sequência de entrada "endlAsEBAEE"
:
- Associado
e
aA
,n
aB
,d
aC
el
paraD
- Substituir
A
pore
- Associado
s
aE
- Substitua
EBAEE
porsness
A saída final é "endlessness"
.
Esclarecimentos e regras
- A sequência de entrada é garantida para conter cada letra minúscula no máximo uma vez. Todas as instâncias adicionais serão substituídas pela letra maiúscula correspondente.
- A sequência de entrada é garantida como válida. (Você não encontrará uma letra maiúscula que ainda não esteja associada a uma letra minúscula.)
- Uma vez que uma letra maiúscula tenha sido associada a uma letra minúscula, ela pode ou não ser usada posteriormente na string. Por exemplo,
C
eD
não são usados no exemplo acima. - Isso é código-golfe , então a resposta mais curta em bytes vence!
Casos de teste
Entradas:
abcd
honk! ABCD!
abrAcAdABCA
endlAsEBAEE
helCo wDrCd!
dermatoglyphics
progBamFinD AuzJles & cCdL DCKf
sphinx of black quKrtz, jOdge my vGw. K NODLM IPGZE HGF SOWBA GYVP QCV JKRX TGU.
petBr AiABD AEckBd a ABFG of AEFGlBH ABAABDs. hJw mIny AEFGLBH ABAABDM HEH ABCBD AEABD AEFG?
Respostas:
abcd
honk! honk!
abracadabra
endlessness
hello world!
dermatoglyphics
programming puzzles & code golf
sphinx of black quartz, judge my vow. a quick brown fox jumps over the lazy dog.
peter piper picked a peck of pickled peppers. how many pickled peppers did peter piper pick?
Respostas:
Geléia ,
87 bytesExperimente online!
Como funciona
fonte
05AB1E , 6 bytes
Código:
Usa a codificação 05AB1E . Experimente online!
fonte
ʒ.l}Aus‡
.JavaScript (ES6), 62 bytes
Cada letra maiúscula é convertida em seu valor base 36, menos 10.
Em seguida, correspondemos à letra minúscula que está nesse índice.
Mostrar snippet de código
fonte
Pitão, 36 bytes
Experimente aqui
Explicação
fonte
Stax , 11 bytes
Execute e depure
fonte
R , 79 bytes
Experimente online!
fonte
scan(,""
para torná-lo um programa completo em vez de uma função, além do que eu estou lutando para encontrar qualquer melhoria ...Perl 5 com
-p
, 27 bytesExperimente online!
-2 bytes graças a @breadbox !
fonte
s///gr
pory///cdr
.Z80Golf , 37 bytes
Experimente online!
O z80 faz muito bem nisso! Aqui está uma desmontagem:
Apontamos HL e BC no
$ff00
intervalo comdec
, e usamosrst $38
como uma alternativa curta acall $8000
, mas, caso contrário, não há muita coisa acontecendo.fonte
Retina , 25 bytes
Experimente online! Explicação:
Combine letras minúsculas.
Substitua cada letra por uma faixa degenerada de si mesma. (Isso impede que a transliteração posterior trate-a como uma classe de caractere; a barra invertida não pode ser usada porque algumas letras minúsculas têm um significado especial após uma barra invertida.)
Liste os intervalos degenerados, mas sem separadores de linha e com um precedente
T`L`
.Avalie o programa de transliteração resultante na entrada original.
fonte
Python 2 , 78 bytes
Experimente online!
fonte
Java (JDK 10) , 109 bytes
Experimente online!
fonte
C (gcc) , 105 bytes
Experimente online!
fonte
Gelatina , 11 bytes
Experimente online!
fonte
Pyth , 7 bytes
Resposta brilhante da forquilha da geléia de Dennis
Todos os casos de teste.
fonte