题目要求统计不同字符的个数,那么用数组或者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;
}