Cho chuỗi chỉ chứa ký tự ( và ). Viết hàm cân bằng dấu ngoặc bằng cách chèn thêm ( hoặc ) ít nhất có thể, trả về số lần chèn.
Ví dụ: str = '()))' → kết quả 2 (thêm (( ở đầu).
Mã thực hiện
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));
Kết quả
2