c++计数法解决统计不同字符个数

#include <iostream>
using namespace std;
#include <string>

int main()
{
string s;
getline(cin, s);
int a[128] = { 0 }, num = 0;
for (int i = 0; i<s.size(); i++) {
a[(int)s.at(i)]++;//巧妙在于此,强制转换时候不同的字符对应的值也不同,题目知识要求个数与值无关所以计数解决很巧妙
}
for (int i = 0; i < 128; i++) {//相同的字符不会被多次统计,而且可以记录下每种字符的个数
if (a[i] != 0)
num++;
}
cout << num;

return 0;
}

 

posted @ 2020-04-03 20:29  我为编程上架构  阅读(1319)  评论(0编辑  收藏  举报