Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Xác thực ngoặc trong chuỗi trong JavaScript

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi có thể chứa một số ngoặc mở và đóng. Hàm nên kiểm tra xem với tất cả các ngoặc mở có tồn tại ngoặc đóng tương ứng hay không. Nếu các ngoặc khớp đúng, hàm trả về true, ngược lại false.

Ví dụ:

f('(hello (world))') = true f('(hello (world)') = false

Ví dụ

Dưới đây là mã nguồn:

const str1 = '(hello (world))'; const str2 = '(hello (world)'; const validateBrackets = (str = '') => {    const strArr = str.split('');    let counter = 0;    for (let i = 0, len = strArr.length; i < len; i++) {       if (strArr[i] === "(") {          counter++;       }else if (strArr[i] === ")") {          counter--;       };       if (counter < 0) {          return false;       };    };    if (counter === 0) {       return true;    };    return false; }; console.log(validateBrackets(str1)); console.log(validateBrackets(str2));

Kết quả

Đầu ra trên console:

true false

Lưu ý: Code chỉ kiểm tra ngoặc đơn '()'. Để hỗ trợ nhiều loại ngoặc [], {}, cần dùng stack lưu loại ngoặc mở.