将一段压缩后的字符串解压缩,并且排序输出
解压规则:
每个字符串后面跟随一个数字,表示这个字符串的重复次数。例如,“a5"解压后的结果为"aaa;"abc3"解压后的结果
为abcabcabc。
排序规则
1、根据每个字符串的重复次数升序排序,然后输入结果例如,“a3b2”,输出的结果为“ obama
2、如果字符重复次数一样,则根据ASC!码顺序做升序排序,然后输出结果。
例如,“b2a2,输出的结果为"abb
输入描述:输入的原始字符串仅包含字母与数字
思路讲解:使用hash对字符串个数进行存储,Key为字符个数,Value为字符串数组,打印字符时按key依次打印,对value中的字符串数组排序输出即可。
按顺序对输入字符串进行读取,将字符数据存在一个字符串中,当遇到数字时:
while (str[i] >= '0'&&str[i] <= '9'&&i < len) {
num = num * 10 + str[i] - '0';
i++;
}
使用num进行存储,当出现非数字字符时,将key等于Num,value为字符串数组,如果key存在,读取value字符串数组,将字符串存入数组,更新key,value;如果不存在就新建数组存入hash表中。
typedef struct typen {