#include <iostream> #include <numeric> #include <string> #include <vector> using namespace std; int main() { string s; getline(cin, s); vector<int> count(26, 0); for (char c : s) { if (c - 'A' >= 0 && c - 'Z' <= 0) { count[c - 'A']++; } } int sum = accumulate(count.begin(), count.end(), 0); cout << sum; } // 64 位输出请用 printf("%lld")
- 此题的关键是用ASCII码把26个大写字母映射到数组的26个位置,然后就可以在每个位置里添加元素个数。
- 添加完后直接用accumulate求和并输出。