当前位置:网站首页>力扣每日一题-第52天-387. 字符串中的第一个唯一字符
力扣每日一题-第52天-387. 字符串中的第一个唯一字符
2022-08-10 23:44:00 【重邮研究森】
2022.8.10今天你刷题了吗?
题目:
给定一个字符串 s
,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1
。
分析:
给你一个字符串,你需要找出没有重复的字母,然后返回一个下标最小的字母的下标是多少。
思路:对于重复直接哈希,先把所有元素插入哈希表中,可以得到每个元素的重复次数。接着遍历这个哈希,找到次数为1的第一个元素。注意,在第二次遍历的时候,我们是按字符串下标开始遍历,举个例子
for(int i=0;i<s.size();i++)
那么在i=0时,我们需要判断s【i】在哈希中的次数是否为1,如果不是,则下一个。
那么在i=1时,我们又判断次数是否为1,如果是则直接返回下标。
解析:
1.哈希表
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int>map;
for (auto num : s)
{
map[num]++;
}
for (int i = 0; i < s.size(); i++)
{
if (map[s[i]] == 1)
{
return i;
}
}
return -1;
}
};
2.哈希映射
这里的区别在于,哈希表存放的元素为(元素,下标),但次数只有-1和下标.对于重复元素直接给-1.然后下一个遍历就直接遍历次数为1的哈希表,并且判断谁的下标最小就是谁
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int>map;
for (int i = 0; i < s.size(); i++)
{
if (map.count(s[i]))
{
map[s[i]] = -1;
}
else
{
map[s[i]] = i;
}
}
int first = s.size();
for (auto num : map)
{
if (num.second != -1 && num.second < first)
{
first = num.second;
}
}
if (first == s.size())
{
return -1;
}
return first;
}
};
边栏推荐
- C语言%(%d,%c...)
- 多语种翻译-多语种翻译软件免费
- 【C语言】数据储存详解
- Multilingual Translation - Multilingual Translation Software Free
- 基于Web的疫情隔离区订餐系统
- 16. 文件上传
- Starting a new journey - Mr. Maple Leaf's first blog
- 12. 处理 JSON
- Summary of Confused Knowledge Points for "High Items" in the Soft Examination in the Second Half of 2022 (2)
- web 性能提升(将持续更新……)
猜你喜欢
[C language] Detailed explanation of data storage
烘干衣服问题
[C language] binary search (half search)
编程语言为什么有变量类型这个概念?
电脑桌面删除的文件回收站没有,电脑上桌面删除文件在回收站找不到怎么办
2. Dependency management and automatic configuration
9. Rest style request processing
ROS Experimental Notes - Install QPEP and Intel-MKL
Deep Learning Transformer Architecture Analysis
mysql数据库高级操作
随机推荐
ASIO4ALL是什么
9. Rest style request processing
C194铜合金C19400铁铜合金
CW617N锡青铜 CuZn40Pb2对应牌号
Call activity of Activiti7 sub-process
Excel English automatic translation into Chinese tutorial
Talk预告 | 中国科学技术大学和微软亚洲研究院联合培养博士生冷燚冲:语音识别的快速纠错模型FastCorrect
8. WEB 开发-静态资源访问
IEEE的论文哪里可以下载?
【ORACLE】什么时候ROWNUM等于0和ROWNUM小于0,两个条件不等价?
excel英文自动翻译成中文教程
CSDN21天学习挑战赛之折半查找
Special class and type conversion
iNFTnews | Web3时代,用户将拥有数据自主权
N1BOOK writeup
Talking about cors
13. 内容协商
电脑桌面删除的文件回收站没有,电脑上桌面删除文件在回收站找不到怎么办
盘点美军的无人机家底
Doris建表注意事项,实时数仓的同学记得收藏