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

JavaScript:Dấu ngoặc cân đối

Cho một chuỗi chỉ bao gồm hai loại ký tự:"(" và ")". Chúng tôi được yêu cầu viết một hàm nhận trong một chuỗi như vậy và cân bằng các dấu ngoặc đơn bằng cách chèn "(" hoặc a ")" nhiều lần nếu cần.

Sau đó, hàm sẽ trả về số lần chèn tối thiểu được thực hiện trong chuỗi để cân bằng nó. Ví dụ -

Nếu chuỗi là -

const str = '()))';

Sau đó, đầu ra phải là 2, bởi vì bằng cách thêm trước '((', chúng ta có thể cân bằng chuỗi.

Ví dụ

Sau đây là mã -

const str = '()))';
const balanceParanthesis = str => {
   let paren = [];
   for (let i = 0; i < str.length; i++) {
      if (str[i] === "(") {
         paren.push(str[i]);
      } else if (str[i] === ")") {
         if (paren[paren.length - 1] === "("){
            paren.pop();
         }else {
            paren.push("#");
         };
      };
   }
   return paren.length;
}
console.log(balanceParanthesis(str));

Đầu ra

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

2