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