字符串压缩

类型:字典

描述

输入一个字符串ss由若干个非数字的字符组成且相同的字符保证连续排列,将字符串按照下列规则进行长度压缩:

  • 将字符放前面,出现次数放后面,如果出现1次,则不需要输出保存的次数
  • 按照字符在s中出现的顺序输出压缩后的字符串.

输入:

字符串

输出(四行或一行):

字典形式,键值对为 {字符:出现次数}
原字符串长度
压缩后字符串
压缩后字符串长度
#######################################
如果输入的s中有数字字符,直接输出‘ERROR’

示例1

输入:

abbc&&+++

输出:

{'a': 1, 'b': 2, 'c': 1, '&': 2, '+': 3}
9
ab2c&2+3
8

示例 2

输入:

abcc(((())))

输出:

{'a': 1, 'b': 1, 'c': 2, '(': 4, ')': 4}
12
abc2(4)4
8

示例 3

输入:

ab1

输出:

ERROR
def f(chars):
    d={}
    for i in chars:
        if i.isdigit():
            return 'ERROR'
        else:
            d[i]=d.get(i,0)+1
    print(d)
    print(len(chars))
    k=''
    for i in d:
        if d[i]==1:
            k+=i
        else:
            k+=i+str(d[i])
    print(k)
    return len(k)

n=input()
print(f(n))
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐