AcWing 3615. 单词个数统计
原题链接
简单
作者:
王杜杜
,
2025-01-15 10:38:11
,
所有人可见
,
阅读 1
C++ 代码
#include <iostream>
#include <sstream>
#include <string>
#include <map>
using std::cout;
using std::cin;
using std::endl;
using std::map;
using std::string;
using std::istringstream;
int main()
{
map<char,int> MChar;
string line;
std::getline(cin,line);
for(auto& ch : line){
if(ch >= 'A' && ch <= 'Z')
ch += 32; // 将所有大写字母全部转换为小写字母
}
for(auto ch : line){
if(ch != ' ')
MChar[ch]++; // 分别对每个字母单独进行计数
}
istringstream iss(line); // 将line转换成字符串输入流对象
string word;
int wordCount = 0;
int letterCount = 0;
while(iss >> word){
wordCount++;// 对单词总个数进行计数
letterCount += word.length();//对字母总个数进行计数
}
// 输出字母和单词总个数
cout << letterCount << endl;
cout << wordCount << endl;
// 遍历MChar,得到出现次数最多的字母,出现的次数
int max = 0;
for(auto& [k,v] : MChar){
max = max > v ? max : v;
}
// 遍历MChar, 并输出v==max的字母
for(auto& [k,v] : MChar){
if(v == max)
cout << k << ' ';
}
cout << endl << max << endl;
return 0;
}