Day5 牛客-字符串归一化
Day5 牛客
本题目来自快手2019年秋招算法A卷。
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。
例如字符串"babcc"归一化后为"a1b2c2"
算法思路:
遍历字符串,将字符与出现的个数存在一个dict里面,然后再结合创建的dict的长度 和存放26个字母的s字符串去做比较,从小到大依次输出。算法思想较为简单,但感觉空间复杂度有点高啊,新开辟了dict,字母表s 和存放字符串的stra
import sys
try:
dicta={}
s='abcdefghijklmnopqrstuvwxyz'
line = sys.stdin.readline().strip()
if line=='':
print('')
for i in range(len(line)):
if line[i] in dicta:
dicta[line[i]]=dicta[line[i]]+1
else:
dicta[line[i]]=1
k=26
j=len(dicta)
i=0
stra=''
while k and j:
if s[i] in dicta:
stra=stra+s[i]+str(dicta[s[i]])
j-=1
k-=1
i+=1
print(stra)
except:
pass
通过了!!!
然后尝试将报错的测试样例放入本地,运行:
在本地运行通过,,,,
总结:
一定要记得输出