【Python】压缩字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lnotime/article/details/87864299

 Python 3.6.7

def compress_text(text: str) -> str:
    """compress text
    compress_text('aabcccccb')  -->  'a2b1c5b1'
    return text if len(result) >= len(text)

    O(n)
    """
    if not isinstance(text, str):
        raise TypeError('compress_text() need a str, not {}'.format(type(text)))
    res, letter, num = '', '', 0
    for letter_new in text:
        if letter_new == letter:
            num += 1
        else:
            res += letter + str(num) if num else ''
            letter, num = letter_new, 1

    return res if len(res) < len(text) else text

猜你喜欢

转载自blog.csdn.net/lnotime/article/details/87864299