c - 如何找到字符串中唯一字符的数量?

标签 c count character charactercount

我没有发现任何特别的东西。

我想找出一个函数来计算字符串中每个字符的出现次数,这样我就可以在长度的末尾将它们拉出来,以找出该字符串中使用了多少同类字符。

我试过嵌套循环,第一个应用,第二个扫描字符串,如果字符没有出现在字符串的其他地方,则有条件地满足该字符:

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/

相关文章:

c - MPI_Barrier 不在循环内工作

python - 如何使用 Python 跳过文件中的 2 行?

MySQL:分组统计后得到总查询数

Excel:如果单元格有空格,则在第一个空格之前提取单元格中的字符

mysql - 使用 ESCAPE 关键字进行 SQL 转义 - 如果转义字符出现在 LIKE 值中会怎样

c - 对 Data.Vector 进行基准测试时的时间出人意料地低

c - 我应该为 Sprite 创建什么样的顶点?

c - C语言中如何将缓冲区复制到字符指针

c - [APUE]fork后parent和child共享相同的文件偏移量吗?

mysql - 计算不同的值多个 col