网易2018校招编程题3
2017-10-21 09:33
302 查看
一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,”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
输入描述:
输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母(‘a’-‘z’)
输出描述:
输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。
如样例所示: s = “aaabbaaac”
所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25
输入例子1:
aaabbaaac
输出例子1:
2.25
#include<iostream> #include<vector> #include<string> #include <iomanip> using namespace std; int main() { string input;//输入字符串 getline(cin, input); vector<int> n; vector<int>::iterator vr;//迭代器 int c = 1;//片段字母相同的个数 int i, j; i = 0; for (j = 1; j < input.length(); j++) { if (input[i] == input[j]) { c++; } else { i = j; n.push_back(c); c = 1; } } if (input[input.length() - 2] == input[input.length() - 1])//处理遗漏的最后一个元素 n.push_back(c); else n.push_back(1); double avg; int total=0; double k = 0; for (vr = n.begin(); vr != n.end(); vr++) { total += *vr; k++; } cout.setf(ios::fixed);//设置精度,设置不对测试不通过 avg = total / k; cout <<fixed<<setprecision(2)<< avg << endl;//最后的答案 return 0; }
相关文章推荐
- 堆棋子 ( 网易2018校招内推编程题)
- 【补题】网易 2018 校招笔试编程题 - 解题思路
- 网易2018校招编程题5
- 网易2018校招编程题 彩色的砖块(C++)
- (网易2018校招笔试)[编程题] 相反数
- 网易2018校招编程题 等差数列(C++)
- 网易2018校招内推Android笔试编程题一道
- (网易2018校招笔试)[编程题] 字符串碎片
- 网易2018校招编程题 独立的小易(C++)
- 网易2018校招内退编程题 独立的小易
- (网易2018校招笔试)[编程题] 魔法币 Magic Coin
- (网易2018校招笔试)[编程题] 字符串碎片
- 网易2018校招编程题 操作序列(C++)
- 2018校招笔试题——网易编程题跳石板
- 网易2018校招编程题集合1
- 网易2018校招编程题集合6
- 网易2018校招内推编程题_堆棋子
- (网易2018校招笔试)[编程题] 游历魔法王国
- (网易2018校招笔试)[编程题]相反数
- 网易游戏2018校招编程题