In questa sfida scriverai un programma che accetta due stringhe separate da nuova riga, s1 (la prima riga) e s2 (la seconda riga), come input (STDIN o più vicino). Puoi presumere che la lunghezza di s1 sarà sempre inferiore a 30 e maggiore della lunghezza di s2. Il programma dovrebbe quindi produrre ogni passaggio della distanza levenshtein da s1 a s2.
Per chiarire cosa significa ogni passaggio nella distanza di levenshtein, il programma stamperà n stringhe, dove n è la distanza di levenshtein tra s1 e s2 e la distanza di levenshtein tra due stringhe adiacenti sarà sempre una. L'ordine non ha importanza. L'output deve essere separato da newline e non includere s1, ma solo gli in-betweens e s2. Il programma dovrebbe anche funzionare in meno di un minuto su un computer moderno.
Esempi:
Ingresso:
Programming
Codegolf
Produzione:
rogramming
Cogramming
Coramming
Coamming
Codmming
Codeming
Codeging
Codegong
Codegolg
Codegolf
Ingresso:
Questions
Answers
Produzione:
uestions
Aestions
Anstions
Ansions
Answons
Answens
Answers
Ingresso:
Offline
Online
Produzione:
Ofline
Online
Ingresso:
Saturday
Sunday
Produzione:
Sturday
Surday
Sunday
Ecco un collegamento a uno script Python che stampa la distanza e i passaggi.
Regole aggiuntive:
- Nessun uso di Internet
- Si applicano scappatoie standard
Questo è code-golf quindi tieni il codice breve; vince il codice più corto!
s1(newline)s2, tuttavia, dopo aver esaminato di nuovo la domanda, mi chiedo se invece intendevi che il programma selezionasse s1 e s2 in base alla lunghezza di 2 stringhe inserite, arrivando in entrambi gli ordini, ti dispiacerebbe chiarire questo punto? Cioè, supponiamo che l'ingresso sia s1 seguito da s2 o selezioniamo s1 e s2 in base alla lunghezza dei due ingressi?