Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

สร้างวงเล็บใน Python


สมมติว่าเรามีค่า n เราต้องสร้างวงเล็บที่มีรูปแบบถูกต้องที่เป็นไปได้ทั้งหมดซึ่งมีวงเล็บเปิดและปิดจำนวน n รายการ ดังนั้นหากค่าของ n =3 วงเล็บจะเป็น ["()()()","()(())","(())()","(()()) ","((()))"]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดวิธีการที่เรียกว่า genParenthesisRec() การดำเนินการนี้ใช้สตริง temp ซ้าย ขวา และอาร์เรย์ผลลัพธ์ อาร์เรย์ผลลัพธ์เริ่มต้นว่างเปล่า
  • ฟังก์ชัน genParenthesisRec จะทำงานดังนี้
  • ถ้า ซ้าย =0 และ ขวา :=0 ให้ใส่ temp ลงในผลลัพธ์ แล้วส่งคืน
  • ถ้าเหลือ> 0
    • getParenthesisRec(ซ้าย – 1, ขวา, อุณหภูมิ + “(”, ผลลัพธ์)
  • ถ้าใช่> ซ้าย
    • getParenthesisRec(ซ้าย ขวา – 1 อุณหภูมิ + “)” ผลลัพธ์)

ตัวอย่าง(Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อทำความเข้าใจ −

คลาส Solution(object):def generateParenthesis(self, n):""" :type n:int :rtype:List[str] """ result =[] self.generateParenthesisUtil(n,n,"", ผลลัพธ์) ส่งคืนผลลัพธ์ def def generateParenthesisUtil (ตัวเอง ซ้าย ขวา อุณหภูมิ ผลลัพธ์):if left ==0 and right ==0:result.append(temp) return if left>0:self.generateParenthesisUtil(left-1,right ,temp+'(',result) if right> left:self.generateParenthesisUtil(left, right-1, temp + ')', result)ob =Solution()print(ob.generateParenthesis(4))

อินพุต

4

ผลลัพธ์

<ก่อน>["(((())))","((()()))","((())())","((()))()","( ()(()))","(()()())","(()())()","(())(())","(())()( )","()((()))","()(()())","()(())()","()()(())","() ()()()"]