假设我们有一个字符串s。我们必须使用游程长度编码技术对此进行编码。众所周知,行程编码是一种快速而简单的字符串编码方法。想法如下-重复的连续元素(字符)为单个计数和字符。
因此,如果输入类似于s =“ BBBBAAADDCBB”,则输出将为“ 4B3A2D1C2B”
为了解决这个问题,我们将遵循以下步骤-
res:=空字符串
tmp:= s的第一个字符
数:= 1
对于1到s大小的范围内的i
数:=数+ 1
res:= res串联计数串联tmp
tmp:= s [i]
数:= 1
如果s [i]与tmp不同,则
除此以外,
返回res串联计数,串联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