思路:空间换时间: 申请一个长128的数组作为位图来记录该位上的字符是否出现过,数组的数值计为0; 然后遍历字符串数组,用(int)s[i]获取每个字符的ASCII值,然后给对应位置1,最后统计所有为1的位数。

#include<string>
using namespace std;
int main(){
    string s;
    cin>>s;
    int a[128]={0};
    for(int i=0;i<s.size();i++){
        a[(int)s[i]]=1;
    }
    int num=0;
    for(int i=0;i<128;i++){
        if(a[i]==1){
            num++;
        }
    }
    cout<<num;
}