Drunk Uncle (mi dispiace ME e AUS per il blocco della regione) è un personaggio immaginario di Saturday Night Live. Confonde spesso parole per gli altri che suonano come loro. Per questa sfida devi convertire i normali discorsi in drunkspeak.
Algoritmo
La traduzione in drunkspeak richiede lo scambio dell'ordine delle parole nel testo. Lo scambio si basa sulla somiglianza dell'ubriachezza di due parole. La somiglianza con l'ubriachezza è definita come il numero di lettere che due parole hanno negli stessi indici . Tuttavia, due parole identiche hanno una somiglianza di ubriachezza di -1 . Ad esempio, tree
e friend
hanno una somiglianza di ubriachezza di 2, perché entrambi hanno una 'r' all'indice 1 e una 'e' all'indice 3.
Tutto quello che devi fare è trovare le due parole nel testo con la più alta somiglianza di ubriachezza, quindi scambiarle. Dopo aver scambiato due termini, questi non si spostano più. Quindi guardi i rimanenti termini scambiabili e scambia i due che hanno la somiglianza di ubriachezza più alta. Continui a farlo fino a quando non puoi più scambiare. Quindi si genera (o si restituisce, per una funzione) il testo aggiornato.
specifiche
- Per semplicità, l'input è un elenco di parole composto da caratteri in [A-Za-z]
- Ogni input contiene almeno una parola
- La corrispondenza delle lettere non fa distinzione tra maiuscole e minuscole:
A
corrisponde aa
( Nota: a causa di questa regolaDog
edog
sono identici e quindi hanno un DS di -1) - Se più coppie hanno la somiglianza di ubriachezza più alta:
- Delle parole, che possono massimizzare la somiglianza dell'ubriachezza, scegli quella con l'indice più basso nell'elenco
- Associa quella parola alla parola con l'indice più basso che massimizza la somiglianza dell'ubriachezza
Esempi
Drunk Uncle needs your help
(titolo)- S 1 : Ubriaco <=> tuo (DS: 1)
your Uncle needs Drunk help
- S 2 : necessita di <=> aiuto (DS: 1)
your Uncle help Drunk needs
- Produzione:
your Uncle help Drunk needs
- S 1 : Ubriaco <=> tuo (DS: 1)
I love fidget spinners
(esempio noioso)- S 1 : I <=> love (DS: 0)
love I fidget spinners
- S 2 : fidget <=> spinner (DS: 0)
love I spinners fidget
- S 1 : I <=> love (DS: 0)
dog eat dog ear
- S 1 : mangia <=> orecchio (DS: 2)
dog ear dog eat
- S 2 : cane <=> cane (DS: -1)
dog ear dog eat
(questo passaggio è solo formalità)
- S 1 : mangia <=> orecchio (DS: 2)
Let me tell you a story
- S 1 : Lasciami <=> me (DS: 1)
me Let tell you a story
- S 2 : dì <=> tu (DS: 0)
me Let you tell a story
- S 3 : una <=> storia (DS: 0)
me Let you tell story a
- S 1 : Lasciami <=> me (DS: 1)
Too many money and purple people
- S 1 : viola <=> persone (DS: 4)
Too many money and people purple
- S 2 : molti <=> soldi (DS: 2)
Too money many and people purple
- S 3 : Troppo <=> e (DS: 0)
and money many Too people purple
- S 1 : viola <=> persone (DS: 4)
Fammi sapere se ci sono altri esempi che vuoi che io copra.