def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
✳Kunjungi koordinat kisi persegi panjang dalam spiral searah jarum jam dari kiri atas.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
Proyek
Uji dimensi nol dan satu baris atau kolom, serta tolak dimensi di luar nol sampai 100 dan pastikan setiap koordinat muncul sekali.
Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
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.
def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
Ruang kerja kode dengan AI
Tinjau kontrak keluaran sebelum menulis ulang penelusuran
Ketika penelusuran memasok komponen lain, urutan keluarannya sama pentingnya dengan sel yang dikunjungi. SpiralJuniper adalah ruang kerja pemrograman AI Windows untuk meninjau hubungan itu bersama model terhubung. Bawa fungsi penelusuran dan kode pengguna keluarannya ke diskusi, lalu jelaskan perilaku yang harus dipertahankan perubahan usulan.
Contoh permintaan dapat berkaitan dengan penelusuran grid searah jarum jam untuk mengurutkan sel pada pratinjau. Minta asisten memeriksa bagaimana implementasi saat ini menangani persegi panjang tipis dan apakah ada koordinat yang muncul dua kali. Berikan urutan kecil yang diharapkan, bukan hanya gambar. Ini memberi calon patch kontrak konkret tanpa menganggap ruang kerja menyertakan aplikasi pratinjau grid.
Baca perubahan usulan bersama kode pengguna hasil. Periksa apakah urutan, konvensi koordinat, atau perilaku grid kosong berubah, dan jalankan pengujian proyek yang mencakup satu baris, satu kolom, dan persegi panjang. Jika implementasi menjadi lebih sederhana tetapi mengubah urutan yang diandalkan antarmuka, tuntaskan keputusan produk itu sebelum menerimanya.
SpiralJuniper mendukung endpoint model kompatibel OpenAI atau Anthropic. Pilih model AI abliterated jika tersedia melalui layanan Anda, dengan batasan dan kemampuannya sendiri. Konteks dan dukungan alat yang bergantung pada server membentuk percakapan pemrograman; data uji dan peninjauan Anda menentukan apakah patch layak masuk ke aplikasi.
Sebelum mengganti implementasi penelusuran
Apa yang harus ditampilkan data uji penelusuran yang diharapkan?
Daftarkan koordinat dalam urutan persis yang diwajibkan pengguna hasil, termasuk sudut awal dan arah. Himpunan sel yang dikunjungi tidak dapat mengungkap kesalahan urutan. Simpan data uji persegi panjang kecil yang dapat diperiksa langsung oleh peninjau.
Mengapa memeriksa grid satu baris dan satu kolom secara terpisah?
Keduanya dapat mengungkap pembaruan batas yang mengunjungi sel sama lagi atau melewatkan segmen terakhir. Sertakan kedua kasus dalam pemeriksaan proyek, bersama perilaku grid kosong yang diharapkan antarmuka, sebelum menerima patch penelusuran umum.
Dapatkah perubahan urutan koordinat merusak hasil yang selain itu benar?
Ya. Pengguna hasil mungkin menafsirkan pasangan sebagai baris lalu kolom, sedangkan pengganti mengembalikan sebaliknya. Minta model menelusuri penggunaan pasangan dan mempertahankan konvensi terdokumentasi kecuali tugas secara eksplisit mencakup perubahannya.
Apakah pratinjau visual cukup untuk menyetujui kode?
Gunakan untuk memeriksa hasil yang dihadapi pengguna, tetapi pertahankan pula pengujian urutan persis. Pratinjau dapat menyembunyikan duplikat atau koordinat yang terlewat. Jalankan pemeriksaan proyek yang ada dan bandingkan usulan dengan kontrak penelusuran tertulis.