题解
【入门】字符统计
1 条题解
-
0
解题思路
用 26 个计数器统计字母,再按字母顺序输出非零计数,每五项换行。
参考代码
// 先读入题目给出的输入数据。 // 用简单的循环完成题目要求。 #include <iostream> using namespace std; int main() { int cnt[26] = {0}; char c; while (cin.get(c) && c != '.') { if (c >= 'a' && c <= 'z') cnt[c - 'a']++; } int num = 0; for (int i = 0; i < 26; i++) { if (cnt[i] == 0) continue; // 每五项换一行,字母按从 a 到 z 的顺序输出。 if (num > 0) cout << " "; cout << char('a' + i) << ":" << cnt[i]; num++; if (num % 5 == 0) cout << endl; } if (num % 5 != 0) cout << endl; return 0; }复杂度分析
代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。
- 1