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

JavaScript: การทำให้วงเล็บสมดุล

กำหนดสตริงที่ประกอบด้วยตัวอักษรเพียงสองประเภทคือ "(" และ ")" เราต้องเขียนฟังก์ชันที่รับสตริงแบบนี้และทำให้วงเล็บสมดุลโดยการแทรก "(" หรือ ")" จำนวนครั้งที่จำเป็น

ฟังก์ชันควรคืนค่าจำนวนการแทรกน้อยที่สุดที่ทำให้สตริงสมดุล ตัวอย่างเช่น:

ถ้าสตริงคือ:

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