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

Phân tích và cân bằng ngoặc nhọn trong JavaScript


Chúng ta được cho một chuỗi các ngoặc nhọn, và cần viết một hàm thêm ngoặc ở đầu và cuối chuỗi để tất cả các ngoặc khớp nhau. Ngoặc khớp nếu mỗi '<' có '>' tương ứng và ngược lại.

Ví dụ: Nếu chuỗi đầu vào là: const str = '><<><';

Thì đầu ra sẽ là: const output = '<><<><>>'; (Thêm '<' ở đầu và '>>' ở cuối).

Chúng ta sẽ dùng một biến đếm số thẻ '<' mở cho đến nay. Khi gặp '>', nếu không có thẻ mở, thêm '<' vào đầu (giữ đếm ở 0). Cuối cùng, thêm số '>' khớp với số thẻ mở còn lại.

Ví dụ

Code cho việc 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));

Kết quả

Kết quả hiển thị trong console sẽ là:

><<><>>