Kami menyebut grup paren paren terbuka (, paren dekat yang cocok) dan semua yang ada di dalamnya.
Grup atau string parens disebut tanda kurung seimbang jika tidak mengandung apa-apa atau hanya 2 kelompok parens seimbang murni.
Sebagai contoh:
The string "(()())()" is parenthesly balanced
( )() Because it contains exactly 2 parenthesly balanced parens groups
()() The left one is parenthesly balanced because it contains 2 parenthesly balanced parens groups (balanced because they are empty). The right one is parenthesly balanced because it contains nothing.
Juga:
The string "(()(()))()" is not parenthesly balanced
( )() Because it contains a parens group that is not parenthesly balanced: the left one
()( ) The left one is not balanced because it contains a parens group that is not balanced: the right one
() The right one is not balanced because it only contains one balanced group.
Jadi, string atau grup parens seimbang harus:
- Tidak mengandung apa pun.
- Atau hanya berisi dan persis 2 grup parens seimbang yang disusun dalam tanda kurung. Seharusnya tidak mengandung yang lain.
Tugas:
Tugas Anda adalah menulis fungsi atau program yang memeriksa apakah string yang diberikan adalah tanda kurung yang seimbang atau tidak.
Memasukkan:
Input akan berupa string atau daftar karakter atau yang serupa. Anda dapat mengasumsikan bahwa string hanya akan terdiri dari karakter '('dan ')'. Anda juga dapat mengasumsikan bahwa setiap paren terbuka (akan memiliki cocok paren penutupan ), jadi jangan khawatir tentang string seperti "((("atau ")("atau "(())("...
Catatan: Seperti yang disebutkan oleh @DigitalTrauma dalam komentarnya di bawah, tidak apa-apa untuk mengganti ()kombo dengan karakter lain (seperti <>,[] , ...), jika itu menyebabkan pekerjaan tambahan seperti melarikan diri dalam beberapa bahasa
Keluaran:
Apa pun untuk memberi sinyal apakah string tersebut diseimbangkan dengan tanda kurung atau tidak (benar atau salah, 1 atau 0, ...). Harap sertakan dalam jawaban Anda apa fungsi / program Anda diharapkan untuk menghasilkan.
Contoh:
"" => True
"()()" => True
"()(()())" => True
"(()(()(()())))(()())" => True
"(((((((()())())())())())())())()" => True
"()" => False
"()()()" => False
"(())()" => False
"()(()(())())" => False
"(()())(((((()())()))())())" => False
"()(()()()())" => False
"()(()(()())()())" => False
Dua contoh terakhir benar-benar membuat perbedaan!
Semoga berhasil!
"(()())()"akan direpresentasikan sebagai [0, 0, 1, 0, 1, 1, 0, 1]. Ini akan menghapus keharusan untuk mengkonversi input ke kode karakter dan kemudian mengurangi.
