LeetCode 0387. 字符串中的第一个唯一字符
Posted Tisfy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 0387. 字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。
【LetMeFly】387.字符串中的第一个唯一字符
力扣题目链接:https://leetcode.cn/problems/first-unique-character-in-a-string/
给定一个字符串 s
,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1
。
示例 1:
输入: s = "leetcode" 输出: 0
示例 2:
输入: s = "loveleetcode" 输出: 2
示例 3:
输入: s = "aabb" 输出: -1
提示:
1 <= s.length <= 105
s
只包含小写字母
方法一:计数
首先遍历一遍字符串,然后把每个字母的出现次数计算出来。
之后再遍历一遍字符串。遍历过程中,如果遇到了一个值出现过一次的字母,就返回这个字母的下标。
否则(第二次遍历完也没有发现只出现了一次的字母)就返回-1
。
- 时间复杂度 O ( n ) O(n) O(n),其中 n n n是字符串长度
- 空间复杂度 O ( C ) O(C) O(C),其中 C C C是字符集大小。本题中字符集为26个小写英文字母, C = 26 C=26 C=26
AC代码
C++
class Solution
public:
int firstUniqChar(string& s)
int cnt[26] = 0;
for (char& c : s)
cnt[c - 'a']++;
for (int i = 0; i < s.size(); i++)
if (cnt[s[i] - 'a'] == 1)
return i;
return -1;
;
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/127262237
以上是关于LeetCode 0387. 字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章
前端与算法 leetcode 387. 字符串中的第一个唯一字符
LeetCode --- 字符串系列 --- 字符串中的第一个唯一字符
《LeetCode之每日一题》:281.字符串中的第一个唯一字符