题目:
一个由小写字母组成的字符串可以看成一些同一字母的最大
碎片组成的。例如:"aaabbaaac"是由下面的碎片组成"aaa","bb","c"
现给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少
输入描述:输入一个包含一个字符串s,字符串s的长度length(1<=length<=50)
s 只含小写字母(a-z)
输出描述:输出一个整数,表示所有碎片的平均长度。四舍五入长度,四舍五入保留
两位小数 如样例所示 s = "aaabbaaac",所有碎片的平均长度=(3+2+3+1)/4=2.25
输入例子:aaabbaaac
输出例子:2.25
(原网易校招2018年字符串碎片问题)
注:使用的是python代码实现
下面的代码中有注释
num = input('输入一组字符串')
li = [] # 创建一个空列表,用来保存 计算相同元素的数量
count = 1
size = len(num) - 1
for i in range(size):
if num[i] == num[i + 1]: # 比较与下一个元素是否相等
count += 1 # 相等的话加1
else:
li.append(count) # 当不相等时,计算的数量append到列表中
count = 1
li.append(count)
print(li) # 列表中最终保存的是碎片的数量和个数
print('%.2f' % (sum(li) / len(li))) # 进行四舍五入计算