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

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


สมมติว่าเรามีสตริงที่แทนอักขระที่พิมพ์ลงในโปรแกรมแก้ไข สัญลักษณ์ "<-" หมายถึง Backspace เราต้องหาสถานะปัจจุบันของตัวแก้ไข

ดังนั้น หากอินพุตเป็นแบบ s ="ilovepython<-<-ON" เอาต์พุตจะเป็น "ilovepythON" เนื่องจากมีอักขระแบ็คสเปซสองตัวหลัง "ilovepython" ระบบจะลบอักขระสองตัวสุดท้าย จากนั้นพิมพ์ "ON" อีกครั้ง .

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

  • res :=รายการใหม่
  • สำหรับแต่ละ i ใน s ทำ
    • ถ้าฉันเหมือนกับ '-' และอักขระตัวสุดท้ายของ res เหมือนกับ '<' ดังนั้น
      • ลบองค์ประกอบสุดท้ายออกจาก res
      • ถ้า res ไม่ว่างก็
        • ลบองค์ประกอบสุดท้ายออกจาก res
    • มิฉะนั้น
      • ใส่ i ต่อท้าย res
  • รวมองค์ประกอบที่มีอยู่ใน res และ return

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

ตัวอย่าง

class Solution:
   def solve(self, s):
      res = [] for i in s:
      if i == '-' and res[-1] == '< ': res.pop()
         if res:
            res.pop()
         else:
            res.append(i)
      return "".join(res)
ob = Solution()
print(ob.solve("ilovepython<-<-ON"))

อินพุต

"ilovepython<-<-ON"

ผลลัพธ์

ilovepython<-<-ON