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

โปรแกรมตรวจสอบลำดับ push pop ของสแต็กว่าถูกต้องหรือไม่ใน Python


มีรายการ pushes และ pops ตรวจสอบว่าเป็นลำดับ push/pop ของสแต็กที่ถูกต้องหรือไม่

เช่น pushes=[1,2,5,7,9], pops=[2,1,9,7,5] ให้ True

ขั้นตอนการแก้ปัญหา

  • จำลองสแต็ก: push ตาม pushes
  • หลัง push แต่ละครั้ง while สแต็กไม่ว่างและ top == pops[i] ให้ pop และ i++
  • ท้ายสุดถ้าสแต็กว่างคืน True มิฉะนั้น False

ตัวอย่างโค้ด

class Solution:
    def solve(self, pushes, pops):
        s = []
        i = 0
        for ele in pushes:
            s.append(ele)
            while s and pops[i] == s[-1]:
                s.pop()
                i += 1
        return len(s) == 0

ob = Solution()
pushes = [1,2,5,7,9]
pops = [2,1,9,7,5]
print(ob.solve(pushes, pops))

อินพุต

[1,2,5,7,9], [2,1,9,7,5]

เอาต์พุต

True