BBracketMast
Ruang kerja kode dengan AI

Kedalaman kurung bersarang

Temukan kedalaman maksimum teks yang hanya berisi kurung bulat, siku dan kurawal.

● ● ●BracketMast●
Alur kerja · Kedalaman kurung bersarang ×
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
✳Kedalaman kurung bersarang
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
  1. Tinjau sebelum menerapkan

    Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

  2. Model

    Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

  3. Proyek

    Terima teks kosong dengan kedalaman nol, tetapi tolak pasangan bersilangan, kurung tak berpasangan dan semua karakter lain termasuk spasi.

Alur kerja

Kedalaman kurung bersarang

Alur kerja ↗
Alur kerja
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
Ruang kerja kode dengan AI

Buat aturan validasi mudah dipahami oleh pemanggil berikutnya

BracketMast menghadirkan pengembangan berbantuan AI dalam ruang kerja Windows yang menghubungkan folder proyek dengan percakapan pemrogramannya. Gunakan saat perubahan validasi memerlukan ketepatan lebih dari sekadar permintaan menangani masukan buruk. Jelaskan bahasa masukan yang diterima, kondisi kegagalan, dan apa yang harus diterima pemanggil, lalu minta asisten memeriksa implementasi yang ada sebelum mengusulkan perbaikan.

Tugas yang melibatkan bracket_depth.py dapat berfokus pada apakah masukan hanya berisi kurung yang didukung, apakah urutannya valid, dan apa arti nilai kosong. Mintalah patch serta contoh yang memperlihatkan keputusan tersebut. Perhatikan fungsi dan pemanggilnya: mengubah alfabet yang diterima dapat mengubah perilaku meskipun masukan dengan kurung seimbang tetap berfungsi. Dengan demikian, peninjauan validasi membahas kontrak aplikasi, bukan hanya satu demonstrasi yang berhasil.

Setelah meninjau usulan, jalankan pemeriksaan proyek untuk string yang diterima, kurung penutup yang muncul terlalu awal, dan masukan yang belum selesai. Gunakan kegagalan untuk memperjelas permintaan dan pertahankan perilaku kesalahan yang disepakati. BracketMast terhubung ke endpoint kompatibel OpenAI atau Anthropic yang didukung dengan kredensial bila diperlukan. Anda dapat memilih model yang disebut tanpa pembatasan jika endpoint menyediakannya; ketentuan penyedia tetap berlaku, sedangkan batas konteks dan alat bergantung pada model dan server. Pengujian Anda menentukan apakah kode hasil mengikuti kontrak.

Menentukan masukan yang harus diterima validator

Apakah karakter yang tidak didukung harus diabaikan atau ditolak?

Pilih secara sengaja berdasarkan kontrak pemanggil. Validator untuk string yang hanya berisi kurung dapat menolaknya, sedangkan pengurai kode sumber memerlukan aturan berbeda. Jelaskan perbedaan itu kepada asisten sebelum menerima perubahan yang diam-diam melewati karakter tak terduga.

Bagaimana nilai kosong harus diperlakukan?

Tentukan apakah dalam aplikasi Anda nilai itu valid, tidak tersedia, atau merupakan kesalahan. Kemudian periksa hasil fungsi dan cara pemanggil menafsirkannya. Konvensi masukan kosong tidak boleh ditentukan oleh perilaku perulangan yang kebetulan terjadi.

Apa perbedaan pesan kesalahan dan kontrak kesalahan?

Kontrak mencakup kondisi yang gagal, cara kegagalan direpresentasikan, dan tindakan pemanggil berikutnya. Tinjau keputusan itu bersama-sama; memperbaiki kata-kata saja dapat menyisakan nilai hasil yang tidak konsisten atau pengecualian yang tidak ditangani dalam aplikasi.

Bisakah validator digunakan kembali setelah masukan yang diterimanya diubah?

Periksa pemanggil lainnya terlebih dahulu. Alfabet yang diterima lebih luas atau jenis kesalahan berbeda dapat memengaruhi kode yang mengandalkan perilaku lama. Nyatakan kompatibilitas secara jelas dan tambahkan pemeriksaan dependensi itu sebelum memakai kembali fungsi bantu yang telah diubah.

Unduh untuk Windows ↗

BracketMast · Diperbarui 2026-10-25