1、题目描述
一个由小写字母组成的字符串看成一些统一字母的最大碎片组成的。例如,"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
2、题目解析
字符串统计
如何手动计算字符串碎片?
每次比较第一字符与前一个字符是否相等,如果相等视为同一个碎片,反之,视为不同碎片。
3、参考答案
#include <iostream>
using namespace std;
int main(){
string str;
cin >> str;
char prev = str[0];
int count = 1;
for(int i = 1; i != str.size(); i++){
if(prev != str[i]){
prev = str[i];
count++:
}
}
count << 1.0 * str.size() / count << endl;
return 0;
}