字符串压缩

字符串压缩
        利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。
        比如,字符串  aabcccccaaa  会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。
        你可以假设字符串中只包含大小写英文字母(a至z)。

        示例1:
                  输入:"aabcccccaaa"
                  输出:"a2b1c5a3"
        示例2:
          输入:"abbccd"
          输出:"abbccd"
          解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
          
        提示:
                字符串长度在[0,  50000]范围内。

自我解答:
        这题很简单,唯一的麻烦是在边界处理上
        

def compress_string(S: str) -> str:
    ori_len = len(S)
    if ori_len < 3:
        return S
    buf_s = [S[0], ]
    now_count, index = 1, 1
    for index in range(1, ori_len):
        s = S[index]
        if s != buf_s[-1]:
            buf_s.append(str(now_count))
            buf_s.append(s)
            now_count = 1
        else:
            now_count += 1
    buf_s.append(str(now_count))
    
    return "".join(buf_s) if len(buf_s) < ori_len else S

原题链接:https://leetcode-cn.com/problems/compress-string-lcci