Tantangan
Diberikan string yang menggambarkan aturan pemotongan dan string lain, potong bagian dari string kedua menggunakan aturan yang dijelaskan oleh string pertama.
Kedua string akan terdiri dari huruf a-z
atau A-Z
, mana yang Anda pilih (mereka tidak harus diwakili dengan cara yang sama). Cara string kedua diubah dijelaskan di bawah ini:
Algoritma
Ambil string pertama dan bayangkan mengisi celah antara huruf-huruf yang tidak berbatasan (bertambah) dengan =
; misalnya, abcfg
=> abc==fg
. Lalu, sejajarkan kedua string dan kembalikan semua karakter dari string pertama yang tidak di atas tanda sama dengan. Misalnya, diberikan abcfg
dan qrstuvw
sebagai input:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Jika pengubah lebih pendek setelah diisi dengan tanda sama dengan, semua karakter tambahan di string kedua harus dimasukkan. Jika pengubah lebih panjang, karakter yang tertinggal diabaikan.
Pengubah tidak dijamin akan diurutkan.
Uji Kasus
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Implementasi Referensi (digunakan untuk menghasilkan kasus uji) -> TIO
Aturan
- Celah Standar Berlaku
- Anda dapat mengambil input sebagai dua string, dua daftar karakter, matriks karakter, dll. (Format wajar lainnya dapat diterima)
- Anda dapat menampilkan sebagai string atau daftar karakter (atau format standar lainnya untuk string)
- Ini adalah kode-golf , jadi jawaban terpendek dalam byte di setiap bahasa dinyatakan sebagai pemenang untuk bahasanya. Tidak ada jawaban yang akan diterima.
- Salah satu string mungkin kosong.
Selamat Golf!
Terinspirasi oleh dua tantangan Kevin Cruijssen baru-baru ini, "Di sana, saya memperbaikinya (dengan pita / tali )"
There, I blew it up (with a segfault)