Tulis program yang menambah atau menghilangkan spasi untuk memformat kode dengan baik. Aturan untuk seperti apa kode itu ketika Anda selesai:
- Baris tidak boleh mengandung lebih dari satu
{
dan}
. - A
{
harus selalu menjadi hal terakhir pada sebuah baris. - A
}
harus selalu menjadi satu - satunya hal dalam satu baris (selain spasi putih yang muncul sebelumnya). - Jumlah spasi putih di depan setiap baris harus merupakan kelipatan tetap dari jumlah sarang saat ini. (Anda dapat menggunakan jumlah lekukan yang Anda inginkan, asalkan tidak berubah.)
- Tidak ada spasi putih harus dimasukkan atau dihapus yang tidak berkontribusi untuk memenuhi salah satu aturan ini.
Hitungan bersarang untuk baris pertama adalah 0. Hitungan bersarang dari baris lain adalah hitungan bersarang dari baris sebelumnya, ditambah satu jika baris sebelumnya berisi {
, minus satu jika baris saat ini berisi a }
.
{
dan }
di dalam string literal dan komentar tidak dihitung dalam aturan di atas. Literal string adalah teks yang diapit dengan tanda kutip tunggal atau ganda, di mana tanda kutip tunggal atau ganda dengan jumlah garis miring terbalik segera sebelum mereka tidak ditafsirkan sebagai akhir string string. Komentar adalah teks yang dilampirkan dalam /*
dan */
, atau teks pergi dari //
ke akhir baris. Dalam beberapa baris penanda mulai komentar, hanya yang pertama yang diperhitungkan. Komentar tidak diuraikan dalam string literal.
Contohnya
main() {printf("Hello!"); // I don't care about the world...
}
becomes:
main() {
printf("Hello!"); // I don't care about the world...
}
int main(){
puts("a");
puts("b");
}
becomes:
int main(){
puts("a");
puts("b");
}
main()
{ printf("{"); /* }
} */
printf("}//}"); ///*
}
becomes:
main()
{
printf("{"); /* }
} */
printf("}//}"); ///*
}
int test[] = {1, 2, 3};
becomes:
int test[] = {
1, 2, 3
}
;
sumber
Jawaban:
JavaScript (ES6),
376373378393 byteIni adalah ... tantangannya ...
Tampilkan cuplikan kode
Beri tahu saya jika ada yang salah dengan hasilnya, meskipun saya
tidak dapat menemukan apa puntidak dapat menemukan lebih banyak.Versi tidak disatukan
Saya memasukkan kode ini ketika saya menulisnya, jadi mari kita lihat bagaimana kelanjutannya ...
Tampilkan cuplikan kode
sumber
JavaScript (ES6),
260259 byteParsing karakter input dengan karakter. Menggunakan lekukan 4-ruang.
Ini masih WIP dan pada dasarnya diuji hanya terhadap contoh yang diberikan. Jika Anda menemukan bug, beri tahu saya di komentar.
Keadaan pengurai sepenuhnya dijelaskan oleh variabel berikut:
d
→ kedalaman sarang saat inii
→ flag memberitahukan bahwa kita berada 'di dalam' kode (yaitu setelah spasi terdepan dari baris)l
→ string string literalc
→ blokir bendera komentare
→ bendera komentar barisVersi indentasi wajib
Uji kasus
Tampilkan cuplikan kode
sumber