Menu
CoddyTech

Generate Parentheses

Rangkaian tanda kurung terbentuk dengan baik jika, saat dibaca dari kiri ke kanan, jumlah ) tidak pernah melebihi jumlah (, dan kedua jumlah tersebut sama pada akhirnya. Jadi, (())() terbentuk dengan baik, sedangkan ())( tidak: karakter ketiganya menutup pasangan yang tidak pernah dibuka.

Diberikan bilangan bulat n, kembalikan semua string yang terbentuk dengan baik, dengan n tanda kurung buka dan n tanda kurung tutup, diurutkan secara leksikografis, dengan ( berada sebelum ).

Fungsi

generateParenthesis(n: integer) → string-array
ninteger
jumlah pasangan tanda kurung
Mengembalikanstring-array
setiap string valid yang terdiri atas n pasang, dalam urutan leksikografis

Batasan

  • 1 ≤ n ≤ 8
  • Untuk n = 8, jawabannya memuat 1,430 string.

Contoh

Input
n = 3
Output
["((()))", "(()())", "(())()", "()(())", "()()()"]
Penjelasan
Tiga pasang kurung menghasilkan lima string yang valid. ((())) membuka ketiganya terlebih dahulu, jadi urutannya berada di awal; ()()() langsung menutup setiap pasangan dan berada di akhir.
challenge icon

Pertanyaan lanjutan

Bisakah kamu menghitung string yang terbentuk dengan benar untuk n pasang tanpa membuatnya?

Reset kode
def generateParenthesis(n):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

n = 3

Output yang diharapkan

["((()))", "(()())", "(())()", "()(())", "()()()"]