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

相关推荐
小石头 1008634 分钟前
【Java】String类(超级详细!!!)
java·开发语言·算法
.柒宇.38 分钟前
力扣hot100---42.接雨水(java版)
java·算法·leetcode
youngee1144 分钟前
hot100-41验证二叉搜索树
算法
迈巴赫车主1 小时前
蓝桥杯20534爆破 java
java·数据结构·算法·职场和发展·蓝桥杯
坚持就完事了1 小时前
数据结构之链表
数据结构·python·算法·链表
c#上位机1 小时前
halcon图像去噪—均值滤波
图像处理·算法·均值算法·halcon
曾几何时`1 小时前
347. 前 K 个高频元素 分别使用sort和priority_queue 对哈希结构自定义排序
算法
小李小李快乐不已2 小时前
图论理论基础(3)
数据结构·c++·算法·图论
牙牙要健康2 小时前
【open3d】示例:自动计算点人脸点云模型面部朝向算法
人工智能·python·算法
youngee112 小时前
hot100-41二叉搜索树中第K小的元素
算法