Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tất cả cách cân bằng n cặp ngoặc đơn trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số n. Hàm sẽ trả về một mảng hiển thị tất cả các cách cân bằng n cặp ngoặc đơn.

Ví dụ, với n = 3, kết quả sẽ là:

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

Ví dụ

Dưới đây là mã nguồn:

const res = []; 
const buildcombination = (left, right, str) => { 
  if (left === 0 && right === 0) { 
    res.push(str); 
  } 
  if (left > 0) { 
    buildcombination(left-1, right+1, str+"("); 
  } 
  if (right > 0) { 
    buildcombination(left, right-1, str+")"); 
  } 
} 
buildcombination(3, 0, ""); 
console.log(res);

Kết quả

Kết quả đầu ra trong console:

[ '((()))', '(()())', '(())()', '()(())', '()()()' ]