Aqui está o alfabeto fonético:
Alfa
Bravo
Charlie
Delta
Echo
Foxtrot
Golf
Hotel
India
Juliett
Kilo
Lima
Mike
November
Oscar
Papa
Quebec
Romeo
Sierra
Tango
Uniform
Victor
Whiskey
X-ray
Yankee
Zulu
No menor número possível de bytes:
- A entrada será essas palavras em uma ordem aleatória, com as primeiras letras removidas.
- Seu objetivo é organizar as palavras de volta à ordem original usando apenas as letras que você possui agora . Em outras palavras: descubra como '[A] lfa' vem antes de '[B] ravo' e assim por diante. Seu código não deve consultar a lista original, chaves de índice, etc.
- Restaure as primeiras letras originais de cada palavra.
Regras
- O hífen no raio-X provavelmente é mau, mas precisa ficar, pois eu também sou mau.
- O resultado pode ser uma sequência (vírgula ou nova linha separada, por exemplo) ou uma matriz.
- Os casos de ortografia e carta não são negociáveis.
- Não há necessidade de mostrar exemplo de saída nas respostas.
code-golf
data-structures
alphabet
rybo111
fonte
fonte
Respostas:
Gelatina , 21 bytes
Entrada e saída são matrizes de strings.
Experimente online!
fundo
Enquanto existem 26! = 403291461126605635584000000 entradas diferentes, podemos classificar a entrada para que tenhamos que lidar apenas com uma permutação desse alfabeto fonético. Classificando lexicograficamente, obtemos
Podemos simplesmente indexar esse array para classificá-lo pelas letras removidas. Os índices (com base em 1) são
Tudo o que resta a fazer é acrescentar as letras maiúsculas do alfabeto às seqüências de caracteres no resultado.
Como funciona
fonte
Python 3 ,
7671 bytesExperimente online!
fonte
JavaScript, 169/195 bytes
Se a substituição da primeira letra puder ser feita antes da classificação de 169 bytes
Experimente online!
Se a classificação precisar ser feita antes da adição da primeira letra, 195 bytes
Experimente online!
Um total de 20 bytes de cada um desses programas é apenas String.fromCharCode () para recuperar o caractere ...
Outros 69 bytes são a string que identifica exclusivamente o início de cada uma das palavras no alfabeto fonético.
Explicação do primeiro exemplo
for(i=0;i<26;)if(!k.indexOf("l,r,ha,e,c,ox,ol,ot,nd,uli,il,im,ik,ov,s,ap,ue,o,ie,ang,n,i,h,-,a,u".split
,[i++]))return i
A cadeia codificada aqui é separada em uma lista dos caracteres de identificação exclusivos que iniciam as palavras do alfabeto fonético após a remoção do primeiro caractere.
Esta informação é usada para encontrar o índice em que a string se encaixa no alfabeto para colocar o caractere inicial novamente.
O JavaScript classifica implicitamente como cadeias de caracteres os valores ASCII dos caracteres
Explicação do segundo exemplo
A função g = k => ... encontra o índice para o qual a string deve cair no alfabeto fonético.
Classifica as strings pelos números retornados executando g (...)
Substitui o primeiro caractere de cada uma das seqüências de caracteres do alfabeto fonético
fonte
.sort()
resposta de 169 bytes? Na pergunta, ele diz " 3. Restaure as primeiras letras originais de cada palavra. ", Mas não menciona que a saída também deve ser classificada.PHP , 94 bytes
Experimente online!
fonte
05AB1E ,
2927 bytesExperimente online!
-2 graças à mágica de Emigna
.•
.fonte
.•C5ê™вrΓ˜3åóMîõxÿ•u
.A-Za-z0-9
vez de0-9A-Za-z
?Java 7, 169 bytes
Experimente aqui.
Explicação:
fonte