我没有发现任何特别的东西。
我想找出一个函数来计算字符串中每个字符的出现次数,这样我就可以在长度的末尾将它们拉出来,以找出该字符串中使用了多少同类字符。
我试过嵌套循环,第一个应用,第二个扫描字符串,如果字符没有出现在字符串的其他地方,则有条件地满足该字符:
size_t CountUniqueCharacters(char *str)
{
int i,j;
char unique[CHAR_MAX];
for(i=strlen(str); i>=0; i--)
{
for(j=strlen(str); j>=0; j--)
{
if(str[i] != unique[j])
unique[j] = str[i];
}
}
return strlen(unique);
}
这不是很好。
如果您愿意限制某人键入诸如 "aaaaaaaaaaaaa"
之类的惰性名称,这将很有用。
最佳答案
这是一个简单的 C++ 解决方案。此方法具有 O(n) 复杂度:
int countDistinct(string s)
{
unordered_map<char, int> m;
for (int i = 0; i < s.length(); i++) {
m[s[i]]++;
}
return m.size();
}
关于c - 如何找到字符串中唯一字符的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573047/