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í 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à -
><<><>>