Kiat untuk bermain golf di ///

12

Kiat umum apa yang Anda miliki untuk bermain golf di /// ? Saya mencari ide yang dapat diterapkan pada masalah kode-golf dan yang juga setidaknya agak spesifik untuk /// (mis. "Menghapus spasi yang tidak perlu" bukan jawaban). Tip untuk itflabtijtslwi dan Lines ada di topik dan berlaku di sini juga.

Silakan kirim satu tip per jawaban.

Kamerad SparklePony
sumber

Jawaban:

5

Gunakan //sebagai pengganti

Saat Anda mendefinisikan banyak penggantian, mis:

/a/b//c/d//e/f//g/h//i/j//k/l//m/n//o/p//q/r//s/t//u/v//w/x//y/z/

(65 byte) Anda dapat menggunakan //sebagai pengganti:

/~/\/\///a/b~c/d~e/f~g/h~i/j~k/l~m/n~o/p~q/r~s/t~u/v~w/x~y/z/

(61 byte).

Kamerad SparklePony
sumber
4

Blok /// tidak lengkap tidak dicetak

Perhatikan bahwa baris kode ini

/Stack/Overflow//x/\//Stack/ignore/DoItyignore

hanya mencetak Overflow- bagian dari /ignoreseterusnya tidak termasuk dalam output, karena ///hanya mencetak hal-hal di bagian garis miring ketiga.

Coba blok tidak lengkap online!

Namun itu masih dipertimbangkan oleh replacer: jika kita menyuntikkan tebasan di sana, semuanya berubah:

/Stack/Overflow//x/\//Stack/ignore/doitxignore

Coba itu online!

Output di sini adalah Overflowdoit, karena mengganti xdengan /membuatnya sintaks yang valid.

steenbergh
sumber
4

Ketika memperluas berdasarkan dan mencetak hasil antara, sertakan iterasi sebelumnya di masa depan

Kedengarannya agak berbelit-belit. Apa yang saya maksud mungkin lebih baik dijelaskan dengan menggunakan jawaban yang sebenarnya. Tantangan ini membutuhkan output spesifik ini:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

Satu solusi naif mungkin:

/1/Steve Ballmer still does not know//2/ what he did//3/ wrong//4/ with mobile./1.
12.
123.
1234

Perhatikan bagaimana pola 1, 12, 123... diulang? Ya, tidak ketika Anda melakukan ini:

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong//4/3 with mobile/1.
2.
3.
4.

Sekali lagi, terima kasih kepada Martin Ender untuk menunjukkan ini!

steenbergh
sumber
2

Gunakan karakter di akhir kode untuk menangani kasus tepi

Ketika Anda memiliki sepotong ///kode yang menangani semua kecuali satu case, maka Anda dapat menggunakan karakter di tepi kode untuk menangani case edge.

Contoh: Unary menambahkan dua angka bersamaan kecuali angka kedua adalah 7, dalam hal ini hanya menampilkan angka pertama.

Kode yang menangani semua kecuali case "angka kedua adalah 7":

/+//<INPUT 1>+<INPUT 2>

Dengan menambahkan a *ke akhir kode, kita dapat menangani case edge dengan mengganti +0000000*dengan nothing (perlu memasukkan +untuk memastikan jumlahnya tidak lebih besar dari 7). Pastikan untuk memasukkan kode di bagian akhir sebelum input untuk membersihkannya.

/+0000000*///+///*//<INPUT 1>+<INPUT 2>*

Cobalah online!

Untuk contoh "dunia nyata", saya menggunakan trik ini pada beberapa masalah "Jimmy":

Kamerad SparklePony
sumber