字符串aabbbccaaaaa轉換成a2b3c2a5,並按照降序輸出如a5b3a2c2


字符串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

發佈了47 篇原創文章 · 獲贊 32 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章