题目要求统计不同字符的个数,那么用数组或者set等数据结构维护一下,已记录该字符就跳过,否则记录即可。我们这里玩点新玩意,用bitset维护一下。
#include <bits/stdc++.h>
using namespace std;
void solve() {
string s;
cin >> s;
// 按题意,均为ASCII在128以下的字符,那么我们开一个大于128的bitset就可以维护
bitset<130> st;
for (char c : s) {
// 把对应二进制位设为1,重复的二进制位不会重复计算
st.set(c);
}
// 输出被设为1的二进制位的个数,恰好对应不同字符的个数
cout << st.count() << "\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}

京公网安备 11010502036488号