Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm điểm của dấu ngoặc trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy chuỗi dấu ngoặc vuông cân bằng, str, làm đối số đầu tiên và duy nhất.

Hàm của chúng ta sẽ tính toán và trả về điểm của chuỗi dựa trên quy tắc sau -

  • [] có điểm 1

  • AB có điểm A + B, trong đó A và B là các chuỗi dấu ngoặc vuông cân bằng.

  • [A] có điểm 2 * A, trong đó A là một chuỗi ngoặc cân bằng.

Ví dụ:nếu đầu vào của hàm là

Đầu vào

const str = '[][]';

Đầu ra

const output = 2;

Ví dụ

Sau đây là mã -

const findScore = (str = '') => {
   const arr = []
   for(const char of str) {
      arr.push(char)
      while(arr[arr.length - 1] === ']') {
         arr.pop()
         if(arr[arr.length - 1] === '[') {
            arr.pop() arr.push(1)
         } else {
            let num = arr.pop()
            while(arr[arr.length - 1] >= 1) {
               num += arr.pop()
            }
            arr.pop()
            arr.push(2 * num)
         }
      }      
   }
   return arr.reduce((acc, a) => acc + a, 0)
};
console.log(findScore(str));

đầu ra

2