BBracketMast
Không gian lập trình với AI

Độ sâu lồng dấu ngoặc

Tìm độ sâu lớn nhất của văn bản chỉ gồm ngoặc tròn, vuông và nhọn.

● ● ●BracketMast●
Quy trình · Độ sâu lồng dấu ngoặc ×
def bracket_depth(text):
    if type(text) is not str:
        raise ValueError("bracket.type")
    stack, peak = [], 0
    pairs = {')': '(', ']': '[', '}': '{'}
    for char in text:
        if char in "([{":
            stack.append(char)
            peak = max(peak, len(stack))
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                raise ValueError("bracket.order")
        else:
            raise ValueError("bracket.alphabet")
    if stack:
        raise ValueError("bracket.unclosed")
    return peak
✳Độ sâu lồng dấu ngoặc
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
  1. Kiểm tra trước khi áp dụng

    So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.

  2. Mô hình

    Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.

  3. Dự án

    Chấp nhận văn bản rỗng có độ sâu bằng không nhưng từ chối cặp chéo nhau, ngoặc không khớp và mọi ký tự khác kể cả khoảng trắng.

Quy trình

Độ sâu lồng dấu ngoặc

Quy trình ↗
Quy trình
def bracket_depth(text):
    if type(text) is not str:
        raise ValueError("bracket.type")
    stack, peak = [], 0
    pairs = {')': '(', ']': '[', '}': '{'}
    for char in text:
        if char in "([{":
            stack.append(char)
            peak = max(peak, len(stack))
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                raise ValueError("bracket.order")
        else:
            raise ValueError("bracket.alphabet")
    if stack:
        raise ValueError("bracket.unclosed")
    return peak
Không gian lập trình với AI

Làm rõ quy tắc kiểm tra cho mã gọi tiếp theo

BracketMast đưa việc phát triển có AI hỗ trợ vào không gian Windows, nơi thư mục dự án luôn gắn với cuộc trao đổi lập trình. Dùng khi thay đổi kiểm tra đầu vào cần chính xác hơn yêu cầu xử lý dữ liệu xấu. Mô tả ngôn ngữ đầu vào được chấp nhận, điều kiện lỗi và kết quả mã gọi phải nhận, rồi yêu cầu trợ lý xem cách triển khai hiện tại trước khi đề xuất sửa.

Tác vụ với bracket_depth.py có thể tập trung vào việc đầu vào chỉ chứa các dấu ngoặc được hỗ trợ hay không, thứ tự của chúng có hợp lệ không và giá trị rỗng có ý nghĩa gì. Yêu cầu bản sửa cùng ví dụ làm rõ các quyết định đó. Xem cả hàm và mã gọi: đổi tập ký tự được chấp nhận có thể đổi hành vi dù đầu vào có ngoặc cân bằng vẫn hoạt động. Như vậy, việc rà soát dựa trên quy ước của ứng dụng thay vì một lần minh họa thành công.

Sau khi rà soát đề xuất, chạy kiểm tra dự án cho chuỗi hợp lệ, dấu đóng xuất hiện sớm và đầu vào chưa hoàn tất. Dùng các ca thất bại để làm rõ yêu cầu và giữ hành vi báo lỗi đã thống nhất. BracketMast kết nối các điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ, bằng thông tin xác thực khi cần. Bạn có thể chọn mô hình được mô tả là không hạn chế nếu điểm cuối cung cấp; điều kiện của nhà cung cấp vẫn áp dụng, còn giới hạn ngữ cảnh và công cụ phụ thuộc mô hình và máy chủ. Kiểm thử của bạn xác định mã kết quả có tuân thủ quy ước hay không.

Quyết định bộ kiểm tra nên chấp nhận gì

Nên bỏ qua hay từ chối ký tự không được hỗ trợ?

Chủ động chọn dựa trên quy ước của mã gọi. Bộ kiểm tra chuỗi chỉ có dấu ngoặc có thể từ chối chúng, còn bộ phân tích mã nguồn cần quy tắc khác. Cho trợ lý biết sự khác biệt trước khi chấp nhận thay đổi âm thầm bỏ qua ký tự ngoài dự kiến.

Giá trị rỗng nên được xử lý thế nào?

Quy định nó là hợp lệ, thiếu dữ liệu hay lỗi trong ứng dụng. Sau đó kiểm tra cả kết quả hàm lẫn cách mã gọi diễn giải kết quả. Không nên để hành vi tình cờ của vòng lặp quyết định quy ước cho đầu vào rỗng.

Thông báo lỗi khác quy ước xử lý lỗi ở đâu?

Quy ước gồm điều kiện nào gây lỗi, cách biểu diễn lỗi và việc mã gọi làm tiếp theo. Rà soát các quyết định cùng nhau; chỉ cải thiện câu chữ có thể vẫn để lại giá trị trả về không nhất quán hoặc ngoại lệ chưa được xử lý trong ứng dụng.

Có thể dùng lại bộ kiểm tra sau khi đổi đầu vào được chấp nhận không?

Trước hết xem các mã gọi khác. Tập ký tự rộng hơn hoặc kiểu lỗi khác có thể ảnh hưởng mã dựa vào hành vi cũ. Làm rõ tính tương thích và thêm kiểm tra các phụ thuộc đó trước khi dùng lại hàm hỗ trợ đã đổi.

Tải cho Windows ↗

BracketMast · Cập nhật 2026-10-25