Dalam tantangan ini, Anda akan menulis sebuah program yang mengambil dua string yang dipisahkan oleh baris baru, s1 (baris pertama) dan s2 (baris kedua), sebagai input (STDIN atau yang terdekat). Anda dapat mengasumsikan bahwa panjang s1 akan selalu lebih kecil dari 30 dan lebih besar dari panjang s2. Program kemudian harus menampilkan setiap langkah dalam jarak levenshtein dari s1 ke s2.
Untuk memperjelas apa arti setiap langkah dalam jarak levenshtein, program akan mencetak n string, di mana n adalah jarak levenshtein antara s1 dan s2, dan jarak levenshtein antara dua string yang berdekatan akan selalu menjadi satu. Perintahnya tidak masalah. Outputnya harus dipisahkan dengan baris baru dan tidak termasuk s1, hanya in-betweens dan s2. Program ini juga harus berjalan dalam waktu kurang dari satu menit pada komputer modern.
Contoh:
Memasukkan:
Programming
Codegolf
Keluaran:
rogramming
Cogramming
Coramming
Coamming
Codmming
Codeming
Codeging
Codegong
Codegolg
Codegolf
Memasukkan:
Questions
Answers
Keluaran:
uestions
Aestions
Anstions
Ansions
Answons
Answens
Answers
Memasukkan:
Offline
Online
Keluaran:
Ofline
Online
Memasukkan:
Saturday
Sunday
Keluaran:
Sturday
Surday
Sunday
Berikut ini tautan ke skrip python yang mencetak jarak dan langkah-langkahnya.
Aturan tambahan:
- Tidak ada penggunaan internet
- Celah standar berlaku
Ini kode-golf, jadi buatlah kode Anda singkat; kode menang paling pendek!
s1(newline)s2
, namun, setelah melihat kembali pertanyaan itu, saya bertanya-tanya apakah sebaliknya Anda berniat untuk program untuk memilih s1 dan s2 berdasarkan pada panjang 2 string yang dimasukkan, datang dalam urutan mana pun, maukah Anda mengklarifikasi hal ini? Yaitu, apakah kita mengasumsikan inputnya adalah s1 diikuti oleh s2, atau apakah kita memilih s1 dan s2 berdasarkan panjang dari dua input?Jawaban:
Javascript,
167161154 byteTelepon dengan
l("Programming","golf")
Codepen
Kode degolfed (dan beranotasi) (kedaluwarsa tetapi Anda mendapatkan ide):
sumber
s
insidea=a[s](1)
sebagaia=a[s="slice"](1)
menyimpan beberapa byte."Programming"
->"Codegolf"
, tetapi harus 10Haskell,
201194 byteLebih lama dari yang diharapkan. Mungkin saya bisa bermain golf sedikit ...
Contoh penggunaan:
Ini adalah kekuatan kasar yang memutuskan antara mengubah dan menghapus jika karakter awal berbeda.
sumber