字符串aabbbccaaaaa转换成a2b3c2a5,并按照降序输出如a5b3a2c2
Python实现,代码如下
def zipString(s): char=[s[0]] numbers=[] count=1 length=len(s) i=1 while(i<length): if(char[-1]==s[i]): count+=1 i+=1 else: numbers.append(count) char.append(s[i]) i+=1 count=1 numbers.append(count) numbers_dict={} for i in range(len(numbers)): num=numbers[i] print char[i],num, if num not in numbers_dict: numbers_dict[num]=[i] else: numbers_dict[num].append(i) print for k in sorted(numbers_dict.keys(), reverse=True): for j in numbers_dict[k]: print char[j],k, if __name__=='__main__': zipString('aabbbccaaaaad') 输出如下:
a 2 b 3 c 2 a 5 d 1
a 5 b 3 a 2 c 2 d 1