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

โปรแกรมถอดรหัสสตริงที่มีความยาวรันเป็นรูปแบบปกติใน Python


สมมติว่าเรามีสตริง s s เป็นสตริงที่เข้ารหัสความยาวรัน เราต้องหาเวอร์ชันที่ถอดรหัสแล้ว อย่างที่เราทราบกันดีว่าการเข้ารหัสแบบรัน-ยาวเป็นวิธีที่ง่ายและรวดเร็วในการเข้ารหัสสตริง แนวคิดมีดังนี้ - องค์ประกอบต่อเนื่อง (อักขระ) ซ้ำ ๆ เป็นการนับและอักขระเดียว ตัวอย่างเช่น หากสตริงเหมือน "BBBBAAADDCBB" จะถูกเข้ารหัสเป็น "4B3A2D1C2B"

ดังนั้น หากอินพุตเท่ากับ s ="4B3A2D1C2B" เอาต์พุตจะเป็น "BBBBAAADDCBB"

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

  • เอาต์พุต :=สตริงว่าง
  • num:=สตริงว่าง
  • สำหรับแต่ละอักขระ i ใน s ทำ
    • ถ้าฉันเป็นตัวอักษร งั้น
      • เอาต์พุต :=เอาต์พุต + i*(ตัวเลขเป็นตัวเลข)
      • num:=สตริงว่าง
    • มิฉะนั้น
      • num :=num + i
  • ผลตอบแทนที่ได้

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

ตัวอย่าง

class Solution:
   def solve(self, s):
      output = ""
      num=""
      for i in s:
         if i.isalpha():
            output+=i*int(num)
            num=""
         else:
            num+=i
      return output
ob = Solution() print(ob.solve("4B3A2D1C2B"))

อินพุต

"4B3A2D1C2B"

ผลลัพธ์

BBBBAAADDCBB