ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str ซึ่งประกอบด้วยแค่ '[' หรือ ']' เท่านั้น
ฟังก์ชันควรเพิ่มจำนวนวงเล็บเหลี่ยมน้อยที่สุด ('[' หรือ ']' และในตำแหน่งใดๆ) เพื่อให้สตริงรูปแบบวงเล็บที่ได้เป็นไปตามหลัก (valid) และสุดท้ายควรคืนค่าจำนวนวงเล็บที่เพิ่มน้อยที่สุด
ตัวอย่างเช่น หากอินพุตคือ
อินพุต
const str = '[]]';
เอาต์พุต
const output = 1;
คำอธิบายเอาต์พุต
เพราะ หากเราเพิ่ม '[' ไปที่ต้น สตริงจะสมดุล
ตัวอย่างโค้ด
const findAdditions = (str = '') => {
let left = 0;
let right = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === '[') {
left += 1;
} else if (str[i] === ']') {
if (left > 0) {
left -= 1;
} else {
right += 1;
}
}
}
return left + right;
};
console.log(findAdditions(str));ผลลัพธ์
1