Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การวางจำนวนเต็มที่ดัชนีที่ถูกต้องใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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