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

Phân tích cú pháp và cân bằng dấu ngoặc nhọn vấn đề trong JavaScript

Chúng tôi được cung cấp một chuỗi dấu ngoặc nhọn và chúng tôi bắt buộc phải viết một hàm thêm dấu ngoặc ở đầu và cuối chuỗi để làm cho tất cả các dấu ngoặc khớp với nhau.

Các dấu ngoặc nhọn phù hợp nếu với mọi và với mọi> có một <.

tương ứng

Ví dụ - Nếu chuỗi đầu vào là -

const str = '><<><';

Đầu ra

Sau đó, đầu ra phải là -

const output = '<><<><>>';

Ở đây, chúng tôi đã thêm '<' ở đầu và '>>' ở cuối để cân bằng chuỗi.

Chúng tôi sẽ sử dụng một con số sẽ giữ nguyên số lượng thẻ '<' đang mở cho đến nay. Và sau đó, khi chúng ta gặp thẻ '>', nếu không có thẻ mở nào hiện tại, chúng ta sẽ thêm '<' vào đầu chuỗi (trong khi vẫn giữ số lượng thẻ mở là 0).

Sau đó, ở cuối, hãy thêm một số '>' phù hợp với số thẻ hiện đang mở.

Ví dụ

Mã cho điều này sẽ là -

const str = '><<><';
const buildPair = (str = '') => {
   let count = 0;
   let extras = 0;
   for (const char of str) {
      if (char === '>') {
         if (count === 0) {
            extras++;
         } else {
            count−−;
         };
      } else {
         count++;
      };
   };
   const leadingTags = '<'.repeat(extras);
   const trailingTags = '>'.repeat(count);
   return leadingTags + str + trailingTags;
};
console.log(buildPair(str));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

><<><>>