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

โปรแกรมหาข้อความสุดท้ายใน editor หลังพิมพ์และกด backspace ใน Python

ให้สตริงแทนการพิมพ์ใน editor สัญลักษณ์ "<-" แทน backspace หาข้อความที่เหลืออยู่

ตัวอย่าง: "ilovepython<-<-ON" → "ilovepythON" (ลบ 'o','n' แล้วพิมพ์ 'O','N')

อัลกอริธึม Stack

  • เดินผ่านตัวอักษร: ถ้าเจอ '-' และตัวก่อนหน้าใน stack เป็น '<' → pop '<' แล้ว pop ตัวอักษรก่อนหน้า (ลบ 1 ตัว)
  • มิฉะนั้น push ตัวอักษรเข้า stack

การนำไปใช้

class Solution:
    def solve(self, s):
        res = []
        for ch in s:
            if ch == '-' and res and res[-1] == '<':
                res.pop()          # ลบ '<'
                if res:
                    res.pop()      # ลบตัวอักษรก่อนหน้า
            else:
                res.append(ch)
        return ''.join(res)

ob = Solution()
print(ob.solve("ilovepython<-<-ON"))  # ilovepythON