EDIT Ho modificato la formulazione delle regole per rendere più esplicite alcune cose implicite. Ho anche aggiunto un po 'di enfasi per chiarire alcuni punti di apparente confusione e ho definito esplicitamente l'opzione di creare un programma autonomo anziché una funzione.
L'obiettivo qui è creare una funzione che prende un file di testo (o stringa) e lo traspone in modo che le linee diventino colonne e viceversa.
Esempio:
Sono un sms Trasponimi. Puoi farlo?
Risultati in:
ITC RA aan mn sy apo ou ts eed xo tm .ei .t ?
Le regole:
- Siete autorizzati a supporre che i solo spazi utilizzati sono
" "
e"\n"
e che non ci sia spazio bianco in coda su qualsiasi linea. - Si può presumere che il file sia ASCII. Quale marker di fine linea vuoi usare (CRLF o LF). Deve funzionare correttamente sull'esempio, ma dovrebbe anche funzionare su qualsiasi input che soddisfi i presupposti di cui sopra.
- Potrebbe essere necessario inserire spazi (come nell'esempio) dove non ce n'erano per mantenere le colonne in linea.
- Il risultato non deve avere spazi vuoti finali su nessuna riga .
- Il carattere finale di nuova riga (per l'ultima riga) è facoltativo.
- Dovrebbe essere una funzione o un programma completo. Se la tua funzione accetta una stringa, dovrebbe restituire i risultati come stringa. Se accetta un nome file, restituisci il nome del file in cui hai salvato il risultato. È inoltre possibile scrivere un programma completo che accetta input da STDIN e trasmette il risultato corretto a STDOUT; se si esegue questa operazione, è necessario non uscita nulla a STDERR.
- La procedura più breve vince, ma voterò ogni risposta che mi piace.
In base alle regole, l'output nell'esempio è lungo 53 o 52 byte (per le newline LF) a seconda che la newline finale sia inclusa o meno.
Nota: non è un requisito specifico, ma se la tua funzione, se eseguita due volte in successione, non è identica all'originale (la nuova riga finale potrebbe essere diversa e tutte le righe vuote alla fine del file verranno eliminate), allora sei probabilmente infrangere una delle regole.