สมมติว่าเรามีสตริง s เราต้องเข้ารหัสนี้โดยใช้เทคนิค Run-Length Encoding (RLE) ซึ่งเป็นวิธีเข้ารหัสสตริงที่รวดเร็วและง่าย แนวคิดคือ รวมตัวอักษรที่ซ้ำกันติดกันเป็นจำนวนนับและตัวอักษรตัวนั้น
ตัวอย่าง
หากอินพุตคือ s = "BBBBAAADDCBB" ผลลัพธ์จะเป็น "4B3A2D1C2B"
ขั้นตอนการแก้ปัญหา
res:= สตริงว่างtmp:= ตัวอักษรแรกของscount:= 1- ลูป
iจาก 1 ถึงขนาดของs:- ถ้า
s[i]ไม่เท่ากับtmp:res:=resต่อcountต่อtmptmp:=s[i]count:= 1
- อื่นๆ:
count:=count + 1
- ถ้า
- คืนค่า
resต่อcountต่อtmp
การใช้งาน
class Solution:
def solve(self, s):
res = ""
tmp = s[0]
count = 1
for i in range(1, len(s)):
if s[i] != tmp:
res += str(count) + tmp
tmp = s[i]
count = 1
else:
count += 1
return res + str(count) + tmp
ob = Solution()
print(ob.solve("BBBBAAADDCBB"))
อินพุต
"BBBBAAADDCBB"
เอาต์พุต
4B3A2D1C2B