(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Cobalah online!
Karena semua orang memposting solusi 50 byte mereka di sini adalah milikku (saya punya 48 byte satu tapi itu modifikasi sederhana dari DjMcMayhem, jadi aku merasa layak posting)
Penjelasan
Jawaban ini secara ekstensif menggunakan pembatalan nilai.
Sepertinya bukan golf
([][()])({<{}({}[({})])>{<{}>()(<()>)}{}<([][()])>}<>)
Di sini kita menghitung delta sampai tumpukan memiliki satu item tersisa, setiap kali kita mengakumulasikan satu nilai dari loop dalam jika delta itu bukan nol.
Ini adalah cara yang sangat mudah untuk melakukannya.
Untuk membuat golf ini, kami mulai membatalkan nilai. Yang pertama dan yang harus jelas bagi setiap pegolf brain-flak yang keras adalah ketinggian tumpukan. Ini adalah fakta yang sudah diketahui
([])({<{}>...<([])>}{})
sama dengan
(([]){[{}]...([])}{})
Ketika nilai dimodifikasi oleh satu, nilai yang sama berlaku. Ini memberi kita
(([][()]){[{}]<({}[({})])>{<{}>()(<()>)}{}([][()])}<>)
Anda mungkin memperhatikan bahwa ini bahkan tidak menyelamatkan kami byte, tetapi jangan khawatir itu akan menjadi lebih bermanfaat saat kita melanjutkan.
Kami dapat melakukan pengurangan lain, jika Anda melihat pernyataan
<(...)>{<{}> ...
Anda benar-benar dapat menguranginya menjadi
[(...)]{{} ...
Ini berfungsi karena jika kita memasukkan loop [(...)]
dan {}
akan membatalkan, dan jika kita tidak nilai yang [(...)]
sudah nol di tempat pertama dan tidak perlu dibatalkan. Karena kita memiliki kemunculan pola ini dalam kode kita, kita dapat menguranginya.
(([][()]){[{}][({}[({})])]{{}()(<()>)}{}([][()])}<>)
Itu menyelamatkan kita 2 byte tetapi juga menempatkan dua neg di sebelah satu sama lain. Ini dapat digabungkan untuk menyelamatkan kita 2 lagi.
(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Dan itu kode kita.
False
dicetak sebagai gantinya?