Python3 la resolución de problemas: la compresión de cuerdas

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
Publicado 24 artículos originales · ganado elogios 0 · Vistas 407

Supongo que te gusta

Origin blog.csdn.net/qq_18138105/article/details/105236291
Recomendado
Clasificación