L1-043 阅览室 C++
时间: 2025-04-27 15:35:19 浏览: 15
### L1-043 阅览室 C++ 解决方案
对于L1-043阅览室问题,在解决过程中需注意输入数据的处理以及如何高效地统计和输出结果。下面提供一种可能的实现方式:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> books(52, 0);
char ch;
while (cin >> ch && ch != 'E') { // 当字符不是结束标志'E'时继续读取
if (ch >= 'A' && ch <= 'Z')
++books[ch - 'A'];
else if (ch >= 'a' && ch <= 'z')
++books[ch - 'a' + 26];
cin.get(); // 吸收回车符或其他分隔符
}
for (size_t i = 0; i < books.size(); ++i) {
if (books[i]) {
if (i < 26)
cout << static_cast<char>('A' + i) << " ";
else
cout << static_cast<char>('a' + i - 26) << " ";
cout << books[i] << endl;
}
}
return 0;
}
```
上述代码实现了对给定字符串中字母频率计数的功能,并按照题目要求进行了相应的转换与输出[^1]。
#### 输入描述
程序接收一系列由大写英文字母、小写字母组成的字符串序列作为输入,直到遇到字符`E`为止表示输入终止。
#### 输出描述
针对每一个非零频次的大写或小写字母,按ASCII码顺序依次打印该字母及其出现次数,每组之间用换行分开。
阅读全文
相关推荐


















