思路:空间换时间: 申请一个长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;
}