Python3 la resolución de problemas: la compresión de cuerdas
Título original https://leetcode-cn.com/problems/compress-string-lcci/
Título:
compresión de cadena. Utilizando el número de caracteres que se repiten, escrito en una manera de lograr la compresión básica cadena. Por ejemplo, la cadena se convierte en aabcccccaaa a2b1c5a3. Si la cadena "comprimido" no son más cortos, se devuelve la cadena original. Usted puede asumir la cadena contiene sólo las letras mayúsculas (A a Z).
Ejemplo 1:
输入:"aabcccccaaa"
输出:"a2b1c5a3"
Ejemplo 2:
输入:"abbccd"
输出:"abbccd"
解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
consejos:
字符串长度在[0, 50000]范围内。
La resolución de problemas:
class Solution:
def compressString(self, S: str) -> str:
arr = []
curW = None #记录当前字符
curWNum = 0 #记录当前字符的个数
for w in S:
if curW != w:
if curWNum > 0:
arr.append(str(curWNum))
arr.append(w)
curW = w
curWNum = 1
else:
curWNum += 1
if curWNum > 0:
arr.append(str(curWNum))
res = ''.join(arr)
return res if len(res) < len(S) else S