สมมติว่าเรามีสตริง 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