Questa sfida consiste in due parti. Il vincitore sarà la soluzione con il conteggio dei byte totali più basso. La stessa lingua deve essere utilizzata per entrambe le sfide.
Parte 1:
Scrivi una funzione o un programma che accetta come input una frase con solo parole valide e genera un elenco dei caratteri utilizzati, il numero di volte in cui ogni lettera viene utilizzata e il numero di lettere in ciascuna delle parole della frase originale. L'output di questo programma deve essere input valido per il programma successivo (esattamente come viene emesso)
Aggiungerò esempi e regole dettagliate più avanti.
Parte 2:
Scrivi una funzione o un programma che prende l'output dal primo programma come input e usa questo elenco di parole inglesi e ricrea una frase con le informazioni dall'output. La frase non deve essere la stessa della frase originale.
Maggiori informazioni. regole e restrizioni:
Parte 1:
- Il primo input può essere su qualsiasi formato adatto, con o senza virgolette, come argomento di funzione o da STDIN, con o senza parentesi ecc.
- La frase di input non conterrà punteggiatura o caratteri speciali, ad eccezione di un punto / punto alla fine. Ad eccezione del simbolo del punto, tutti i caratteri che si trovano nell'input saranno nell'elenco delle parole.
- La prima lettera della frase sarà maiuscola, il resto sarà minuscolo.
- L'output della parte 2 deve iniziare con la stessa lettera maiuscola della frase originale (quindi non è consigliabile convertire l'input in lettere minuscole (ma OK).
- L'output può essere in qualsiasi formato adatto:
- Deve essere possibile copiare e incollare l'output direttamente nel programma / funzione successivo
- Non è possibile apportare modifiche durante il copia-incolla, l'intero output deve essere copiato e incollato nel suo insieme, non in parti.
- Ad esempio, è possibile produrre un istogramma di tutte le lettere dell'alfabeto o solo quelle utilizzate (in generale, tutto ciò che è necessario per completare la parte 2)
- Non è possibile generare un elenco di caratteri in cui si ripetono più ricorrenze. Per esempio,
The queuenon può produrre un output:Teeehquu (3,5), dovrebbe essere qualcosa di simile:Tehqu, (1 3 1 1 2),(3 5).
Parte 2:
- Il programma / funzione deve accettare l'input esattamente come nella parte 1 (un'eccezione, vedere il commento seguente sull'assunzione del nome del file come input).
- Se sono necessarie parentesi, virgolette o simili circostanti per analizzare l'input, questi devono essere parte dell'output della parte 1.
- L'elenco delle parole può essere trovato qui.
- L'elenco delle parole può essere salvato localmente come
w.txt, oppure può essere recuperato dall'URL. L'URL verrà conteggiato solo come 5 byte, quindi non è necessario un accorciatore di URL. - Se il programma non è in grado di aprire un file senza leggere il nome come input da STDIN ( almeno credo che
siastato il caso di Pyth), il nome del file può essere preso come argomento di input separato.
- L'elenco delle parole può essere salvato localmente come
- L'output deve essere solo una frase (elenco di parole valide), che termina con un punto e una nuova riga opzionale.
- L'output deve contenere parole con lo stesso numero di lettere della frase originale nella parte 1 (nell'ordine corretto)
- Tutte le lettere utilizzate nella frase originale devono essere utilizzate nel nuovo output.
- La frase deve iniziare con la stessa lettera maiuscola della frase di input originale e terminare con un punto.
Entrambe le parti:
- Nessuna delle parti dovrebbe richiedere più di 2 minuti per essere eseguita (la selezione casuale delle parole fino al raggiungimento di una soluzione non è accettata).
Con le regole sopra elencate, ci dovrebbe essere una buona probabilità che venga riprodotta la stessa frase esatta, tuttavia questo non è un requisito.
Esempi:
Negli esempi seguenti, vengono mostrati alcuni formati di input e output diversi. Molti altri sono accettati.
Parte 1:
Ingresso:
Zulus win.
Tipo di uscita 1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
Tipo di uscita 2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
Tipo di uscita 3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
Parte 2:
Input: una copia esatta dell'output dalla parte 1. Output:
Zulus win.
Nota che le altre combinazioni di parole sono accettate purché inizino con a Z, e la prima parola abbia 5 lettere e la seconda ne abbia 3.
Vince il codice più breve in byte.
f1incollato f2deve contenere tutti i dati specificati nella sfida. Nessun dato aggiuntivo può far parte dell'output di f1. Nessun dato può essere "memorizzato" nel f1rendere disponibili le informazioni quando le si chiama f2. f1può accettare solo una stringa come input per chiamata.
