数字出现的次数

一、使用的数据结构

哈希表是一种高效的数据结构,它可以快速地插入和查找元素。哈希表是由一组链表组成的,每个链表称为“桶”。通常使用一个数组来模拟哈希表,数组中的每一个元素都是一个指向链表头部的指针。

哈希函数是哈希表的核心,它将任意长度的输入(键)映射为固定长度的输出(桶),并将指定的键存储在相应的桶中。哈希函数应该具有以下特性:

  • 相同的输入一定要产生相同的输出。
  • 不同的输入应该尽量产生不同的输出。

二、实现思路

本算法的实现思路非常简单,就是遍历整个字符串,通过哈希表来记录每个数字出现的次数。

具体而言,先定义一个哈希表 res,用于统计每个数字出现的次数。然后遍历字符串中的每个字符,如果当前字符为数字,就将对应的哈希表值加1。最后再遍历数字0~9,并输出它们在字符串中出现的次数。

// 定义哈希表,用于统计数字出现次数
int res[256] = { 0 };
for (int i = 0; i < sizeof(str) - 1; i++) {
    // 如果当前字符为数字,则将对应的哈希表值加1
    if (str[i] >= '0' && str[i] <= '9') {
        res[str[i]]++;
    }
}
// 输出结果
for (int i = '0'; i <= '9'; i++) {
    printf("%c出现的次数:%d\n", i, res[i]);
}

三、算法分析

该算法基于哈希表实现,时间复杂度为O(n),空间复杂度为O(1)。由于只需要遍历一次字符串,因此效率很高。

四、总结

在实际编程中,哈希表是一种非常实用的数据结构,它具有快速插入和查找元素的特性。本算法通过哈希表来统计数字出现次数,代码实现简单,易于理解和维护。

常见的快乐算法 文章被收录于专栏

一些简单的算法题目,不想浪费这些快乐

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务