Leetcode每日刷题之字符串中的第一个唯一字符(C++)

在学习的过程中对代码的熟练运用至关重要,练习解决实际问题就可以很好的锻炼自己的编程能力,接下来让我们练习这道 387.字符串中的第一个唯一字符

思路解析

根据题意我们可以知道这个字符串只有小写字母,并且可能包含多个唯一字符,也可能没有唯一字符,所以我们要解决问题的核心要点就是

1. 找出所有唯一字符

2. 找出第一次出现的唯一字符

3. 如果没有唯一字符就返回 -1

接下来使用代码来进行详细解释

cpp 复制代码
class Solution {
public:
    int firstUniqChar(string s) 
    {
        int count[26] = {0};
        //范围 for 通过映射计数
        for(auto ch : s)
        {
            count[ch - 'a']++;
        }

        for(size_t i = 0;i < s.size();i++)
        {
            if(count[s[i] - 'a'] == 1)
                return i;
        }

        return -1;
    }
};

代码分析

1. 首先我们可以使用遍历的思想去依次枚举只出现了一次的唯一字符,然后再判断第一次出 现的字符

2. 这时我们可以使用计数排序的思想,就是开辟一个数字用来存储26个字母对应的出现次 数,即使用映射的思想来计数,使用 当前字母 - 'a' 当做下标,然后遍历用来计数的数组

3. 如果出现了唯一字符就返回其索引,也就是它的下标,反之返回 - 1

相关推荐
阿里技术1 小时前
Agent 评测:方法论与体系设计
大数据·人工智能·算法
cxr8281 小时前
大语言模型上下文缓存命中率测试全场景清单
人工智能·python·算法·缓存·语言模型·自然语言处理·llm
noipp1 小时前
推荐题目:洛谷 P13554 【MX-X15-T1】奶龙龙
c语言·数据结构·c++·算法·编程·洛谷
念风2 小时前
一阶低通滤波器系数的两种计算方法
算法
geovindu2 小时前
go: Enumeration Algorithm
开发语言·后端·算法·golang·枚举算法
退休倒计时2 小时前
【每日一题】LeetCode 287. 寻找重复数 TypeScript
算法·leetcode·typescript
奋发向前wcx3 小时前
y1,y2总复习笔记2 2026.7.15
java·笔记·算法
AI科技星3 小时前
《全域数学·工程应用大典》113–200讲完整总目录
数据结构·人工智能·算法·机器学习·线性回归·乖乖数学·全域数学
ttod_qzstudio3 小时前
【软考算法】软件设计师下午第四题算法总纲:从“直接放弃“到“稳稳拿分“
算法·软考
G.O.G.O.G3 小时前
《LeetCode SQL 从入门到精通(MySQL)》09
sql·mysql·leetcode