leetcode 387.字符串中第一个唯一字符

⭐️ 题目描述


🌟 leetcode链接:https://leetcode.cn/problems/first-unique-character-in-a-string/description/

思路: 比较优的方式使用相对映射记录的方式。在 ASCII 表中小写字母 -97 就是 0 - 25。在依次从前遍历查找即可。需要注意的是 :这里使用 char 数组不行 因为 char 数组每个元素最多只能存储到127 次,那如果超出 127 次就会溢出 所以用 int 精度比较高。

代码:

cpp 复制代码
class Solution {
public:
    int firstUniqChar(string s) {
        // 哈希
        int hash[26] = {0};
        /*
            这里使用 char 数组不行 因为char数组每个元素最多只能存储到127次
            那如果超出127次就会溢出 所以用 int 精度比较高
        */
        for (int i = 0; i < s.size(); i++) {
            hash[s[i] - 97]++;
        }

        // 查找
        for (int i = 0; i < s.size(); i++) {
            if (hash[s[i] - 97] == 1) {
                return i;
            }
        }

        return -1;
    }
};

相关推荐
Jacen.L几秒前
SIGSEGV (11) 段错误详解
c++
2501_9411497913 分钟前
面向微服务异步消息队列与可靠投递的互联网系统高可用设计与多语言工程实践分享
leetcode·决策树
天赐学c语言16 分钟前
1.5 - 二叉树中的最大路径 && C++的类型转换
c++·算法·leecode
HalvmånEver16 分钟前
Linux:匿名管道的五大特性(进程间通信三)
linux·运维·c++·管道pipe
--JR23 分钟前
015——图(1.图的相关概念与存储)
数据结构·c++·算法·链表·图论
DeniuHe31 分钟前
C++实现在数组中找到重复元素及其出现的次数。
开发语言·c++·哈希算法
hz_zhangrl1 小时前
CCF-GESP 等级考试 2025年12月认证C++五级真题解析
c++·算法·青少年编程·gesp·gesp2025年12月·c++五级
Tisfy1 小时前
LeetCode 1975.最大方阵和:脑筋急转弯
算法·leetcode·矩阵·题解·脑筋急转弯
2501_941146321 小时前
多语言分布式任务调度与性能优化实践:Python、Java、Go、C++高效实战方案
leetcode·rabbitmq
leiming61 小时前
c++ 内建函数对象
开发语言·c++·算法