Sebuah string yang panjangnya adalah bilangan segitiga positif (1, 3, 6, 10, 15 ...) dapat disusun menjadi "segitiga teks sama sisi" dengan menambahkan beberapa spasi dan baris baru (dan menjaganya dalam urutan bacaan yang sama).
Misalnya, string 10 panjang ABCDEFGHIJmenjadi:
A
B C
D E F
G H I J
Tulis program atau fungsi yang menggunakan string seperti itu, kecuali itu hanya akan berisi karakter 0dan 1. (Anda dapat menganggap input tersebut valid.)
Untuk "segitiga teks sama sisi" yang dihasilkan, output (cetak atau kembalikan) salah satu dari empat angka yang menunjukkan jenis simetri yang ditunjukkan:
Keluaran
2jika segitiga memiliki simetri bilateral. yaitu memiliki garis simetri dari salah satu sudut ke titik tengah sisi yang berlawanan.Contoh:
0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1Output
3jika segitiga memiliki simetri rotasi. yaitu bisa diputar 120 ° tanpa perubahan visual.Contoh:
0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1Output
6jika segitiga memiliki kedua simetri bilateral dan rotasi. yaitu cocok dengan kondisi untuk menghasilkan keduanya2dan3.Contoh:
0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0Keluaran
1jika segitiga tidak memiliki simetri bilateral atau rotasi.Contoh:
1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1
Kode terpendek dalam byte menang. Tiebreaker adalah jawaban sebelumnya.
Selain dari baris baru tambahan opsional, string input mungkin tidak memiliki ruang / baris baru atau struktur - itu harus polos 0dan 1's.
Jika diinginkan, Anda dapat menggunakan dua karakter ASCII yang dapat dicetak untuk menggantikan 0dan 1.
Uji Kasus
Diambil langsung dari contoh.
011 -> 2
101 -> 2
001010 -> 2
1111010111 -> 2
0100110100 -> 3
0011000010 -> 3
101111111010111 -> 3
101001100010000100111 -> 3
0 -> 6
1 -> 6
000 -> 6
100101 -> 6
0000100000 -> 6
110000 -> 1
001101 -> 1
1101111111 -> 1
111111000111111 -> 1
"Memutar" setiap input dengan 120 ° tentu saja akan menghasilkan output yang sama.