ความลึกของวงเล็บซ้อน
หาความลึกสูงสุดของข้อความที่มีเฉพาะวงเล็บกลม เหลี่ยม และปีกกา.
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ตรวจสอบก่อนนำไปใช้
เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
โมเดล
ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก
โปรเจกต์
ยอมรับข้อความว่างที่มีความลึกศูนย์ แต่ปฏิเสธคู่ที่ไขว้กัน วงเล็บไม่มีคู่ และอักขระอื่นทั้งหมดรวมช่องว่าง.
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ทำให้กฎตรวจอินพุตเข้าใจได้สำหรับผู้เรียกใช้รายถัดไป
BracketMast นำการพัฒนาด้วย AI เข้าสู่พื้นที่ทำงาน Windows ที่โฟลเดอร์โปรเจกต์เชื่อมโยงกับบทสนทนาเรื่องโค้ด ใช้เมื่อการแก้การตรวจอินพุตต้องชัดเจนกว่าการขอให้จัดการอินพุตที่ไม่ถูกต้อง อธิบายรูปแบบภาษาที่ยอมรับ เงื่อนไขล้มเหลว และสิ่งที่ผู้เรียกควรได้รับ แล้วขอให้ผู้ช่วยตรวจวิธีทำงานเดิมก่อนเสนอการแก้ไข
งานเกี่ยวกับ bracket_depth.py อาจเน้นว่าอินพุตมีเฉพาะวงเล็บที่รองรับหรือไม่ ลำดับถูกต้องหรือไม่ และค่าว่างหมายถึงอะไร ขอแพตช์และตัวอย่างที่แสดงการตัดสินใจเหล่านั้น พิจารณาทั้งฟังก์ชันและผู้เรียกใช้ การเปลี่ยนชุดอักขระที่ยอมรับอาจเปลี่ยนพฤติกรรมแม้อินพุตที่วงเล็บสมดุลยังทำงานได้ การตรวจจึงมุ่งที่ข้อกำหนดของแอปพลิเคชัน ไม่ใช่เพียงตัวอย่างเดียวที่สำเร็จ
หลังตรวจข้อเสนอ ให้รันการตรวจสอบโปรเจกต์สำหรับสตริงที่ยอมรับ วงเล็บปิดที่มาเร็วเกินไป และอินพุตที่ยังไม่ครบ ใช้ความล้มเหลวปรับคำขอและรักษาพฤติกรรมข้อผิดพลาดที่ตกลงไว้ BracketMast เชื่อมต่อกับปลายทางที่รองรับ OpenAI-compatible หรือ Anthropic โดยใช้ข้อมูลรับรองเมื่อจำเป็น คุณเลือกโมเดลที่ระบุว่าไม่จำกัดได้หากปลายทางมีให้ เงื่อนไขผู้ให้บริการยังใช้บังคับ และขนาดบริบทกับเครื่องมือขึ้นอยู่กับโมเดลและเซิร์ฟเวอร์ การทดสอบของคุณเป็นสิ่งยืนยันว่าโค้ดทำตามข้อกำหนดหรือไม่
ตัดสินใจว่าตัวตรวจควรยอมรับอะไร
ควรมองข้ามหรือปฏิเสธอักขระที่ไม่รองรับ?
เลือกอย่างตั้งใจตามข้อกำหนดของผู้เรียก ตัวตรวจสตริงที่มีเฉพาะวงเล็บอาจปฏิเสธอักขระอื่น แต่ตัวแยกวิเคราะห์ซอร์สต้องใช้กฎต่างกัน บอกความแตกต่างนี้แก่ผู้ช่วยก่อนยอมรับการแก้ไขที่ข้ามอักขระไม่คาดคิดอย่างเงียบ ๆ
ค่าว่างควรมีพฤติกรรมอย่างไร?
ระบุว่าในแอปพลิเคชันค่าว่างถือว่าถูกต้อง ไม่มีข้อมูล หรือเป็นข้อผิดพลาด แล้วตรวจทั้งผลฟังก์ชันและการตีความของผู้เรียก ไม่ควรปล่อยให้ข้อตกลงเรื่องอินพุตว่างเกิดจากพฤติกรรมของลูปโดยบังเอิญ
ข้อความผิดพลาดต่างจากข้อกำหนดข้อผิดพลาดอย่างไร?
ข้อกำหนดรวมถึงเงื่อนไขที่ล้มเหลว วิธีแทนความล้มเหลว และสิ่งที่ผู้เรียกทำต่อไป ตรวจการตัดสินใจเหล่านี้ร่วมกัน การปรับข้อความอย่างเดียวอาจยังทิ้งค่าที่คืนไม่สอดคล้องกันหรือข้อยกเว้นที่แอปพลิเคชันไม่ได้จัดการ
นำตัวตรวจกลับมาใช้หลังเปลี่ยนอินพุตที่ยอมรับได้หรือไม่?
ตรวจผู้เรียกอื่นก่อน ชุดอักขระที่กว้างขึ้นหรือชนิดข้อผิดพลาดที่ต่างไปอาจกระทบโค้ดที่พึ่งพาพฤติกรรมเดิม ระบุความเข้ากันได้ให้ชัดและเพิ่มการตรวจส่วนที่พึ่งพาเหล่านั้นก่อนนำฟังก์ชันช่วยที่แก้แล้วกลับมาใช้
BracketMast · อัปเดตล่าสุด 2026-10-25