Computer >> Máy Tính >  >> Lập trình >> Javascript

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

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một số n. Hàm của chúng ta sẽ trả về một mảng hiển thị tất cả các cách cân bằng n ngoặc đơn.

Ví dụ:đối với n =3, đầu ra sẽ là -

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

Ví dụ

Sau đây là mã -

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);

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

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