python_字符串碎片问题

题目:

一个由小写字母组成的字符串可以看成一些同一字母的最大
碎片组成的。例如:"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)))  # 进行四舍五入计算


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值