กำหนดสตริงที่ประกอบด้วยตัวอักษรเพียงสองประเภทคือ "(" และ ")" เราต้องเขียนฟังก์ชันที่รับสตริงแบบนี้และทำให้วงเล็บสมดุลโดยการแทรก "(" หรือ ")" จำนวนครั้งที่จำเป็น
ฟังก์ชันควรคืนค่าจำนวนการแทรกน้อยที่สุดที่ทำให้สตริงสมดุล ตัวอย่างเช่น:
ถ้าสตริงคือ:
const str = '()))';
ผลลัพธ์ควรเป็น 2 เพราะการเพิ่ม '((' ข้างหน้าจะทำให้สมดุล
ตัวอย่าง
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));
ผลลัพธ์
โค้ดนี้จะแสดงผลลัพธ์ดังต่อไปนี้บนคอนโซล:
2