เราเรียกกลุ่ม paren (ว่าparen แบบเปิดกลุ่ม paren ที่ใกล้เคียงกัน)และทุกอย่างในนั้น
กลุ่ม parens หรือสตริงเรียกว่าวงเล็บสมดุลถ้ามันมีอะไรหรือเพียง 2 กลุ่ม parens สมดุลวงเล็บ
ตัวอย่างเช่น:
The string "(()())()" is parenthesly balanced
( )() Because it contains exactly 2 parenthesly balanced parens groups
()() The left one is parenthesly balanced because it contains 2 parenthesly balanced parens groups (balanced because they are empty). The right one is parenthesly balanced because it contains nothing.
ในทำนองเดียวกัน:
The string "(()(()))()" is not parenthesly balanced
( )() Because it contains a parens group that is not parenthesly balanced: the left one
()( ) The left one is not balanced because it contains a parens group that is not balanced: the right one
() The right one is not balanced because it only contains one balanced group.
ดังนั้นสตริงที่สมดุลหรือวงเล็บกลุ่มวงเล็บควร:
- ไม่มีอะไรเลย
- หรือมีกลุ่มวงเล็บที่สมดุลเท่านั้น มันควรมีอะไรอย่างอื่น
งาน:
งานของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมที่ตรวจสอบว่าสตริงที่กำหนดมีความสมดุลในวงเล็บหรือไม่
การป้อนข้อมูล:
อินพุตจะเป็นสตริงหรือรายการของตัวละครหรือสิ่งที่คล้ายกัน คุณสามารถสมมติว่าสตริงจะประกอบด้วยตัวอักษรและ'(' ')'นอกจากนี้คุณยังสามารถสันนิษฐานได้ว่าแต่ละวงเล็บเปิด(จะมีการจับคู่วงเล็บใกล้ชิด)จึงไม่ต้องกังวลเกี่ยวกับสตริงเหมือน"((("หรือ")("หรือ"(())("...
หมายเหตุ:ในฐานะที่เป็นที่กล่าวถึงโดย @DigitalTrauma ในความคิดเห็นร้องของเขาก็ตกลงที่จะ subtitute ()คำสั่งผสมโดยตัวละครอื่น ๆ (เช่น<>, [], ... ) ถ้ามันก่อให้เกิดการทำงานเพิ่มเติมเช่นการหลบหนีในบางภาษา
เอาท์พุท:
สิ่งใดที่ส่งสัญญาณว่าสตริงมีความสมดุลในวงเล็บหรือไม่ (จริงหรือเท็จ, 1 หรือ 0, ... ) โปรดระบุคำตอบของคุณในสิ่งที่ฟังก์ชั่น / โปรแกรมของคุณคาดว่าจะได้รับ
ตัวอย่าง:
"" => True
"()()" => True
"()(()())" => True
"(()(()(()())))(()())" => True
"(((((((()())())())())())())())()" => True
"()" => False
"()()()" => False
"(())()" => False
"()(()(())())" => False
"(()())(((((()())()))())())" => False
"()(()()()())" => False
"()(()(()())()())" => False
สองตัวอย่างสุดท้ายสร้างความแตกต่างอย่างแท้จริง!
ขอให้โชคดี!
"(()())()" [0, 0, 1, 0, 1, 1, 0, 1]สิ่งนี้จะลบความจำเป็นในการแปลงอินพุตเป็นโค้ดอักขระแล้วลบออก
