您的位置:首页 > 其它

网易2018校招——03.字符串碎片

2018-02-04 16:24 399 查看

字符串碎片

一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,”aaabbaaac”是由下面碎片组成的:’aaa’,’bb’,’c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。

输入描述:

输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')


输出描述:

输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。

如样例所示: s = "aaabbaaac"
所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25


输入例子1:

aaabbaaac


输出例子1:

2.25


Solution

#include <iostream>
#include <vector>
#include <sstream>
#include <numeric>
#include <iomanip>

using namespace std;

static const auto _____ = []()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
return nullptr;
}();

int main()
{
string line;
getline(cin, line);
auto l = line.length();
vector<int> sizes;
auto j = 0;
for (int i = 0; i < l; ++i)
{
if (i == 0 || line[i] == line[i - 1])
{
++j;
} else
{
sizes.push_back(j);
j = 1;
}
}
sizes.push_back(j);
double sum = accumulate(sizes.begin(), sizes.end(), 0.0);
double mean = sum / sizes.size(); //均值
cout<<setiosflags(ios::fixed)<<setprecision(2);//保留2位小数
std::cout << mean << std::endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网易校招