当前位置:网站首页>力扣每日一题-第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;
}
};边栏推荐
- 14. Thymeleaf
- Timers, synchronous and asynchronous APIs, file system modules, file streams
- 翻译软件哪个准确度高【免费】
- [C Language Chapter] Detailed explanation of bitwise operators (“<<”, “>>”, “&”, “|”, “^”, “~”)
- C194铜合金C19400铁铜合金
- HGAME 2022 Final Pokemon v2 writeup
- 如何快速把握行业机会,更高效地推陈出新,是一个重要的命题
- UOJ#749-[UNR #6]稳健型选手【贪心,分治,主席树】
- 深度学习 Transformer架构解析
- 10. Notes on receiving parameters
猜你喜欢

Multilingual Translation - Multilingual Translation Software Free

How to recover deleted files from the recycle bin, two methods of recovering files from the recycle bin

基于SSM实现手机销售商城系统

ROS实验笔记之——安装QPEP以及Intel-MKL

promise详解

编程语言为什么有变量类型这个概念?

How to recover data from accidentally deleted U disk, how to recover deleted data from U disk

【C语言】C语言程序设计:动态通讯录(顺序表实现)

安科瑞为工业能效行动计划提供EMS解决方案-Susie 周

李彦宏拆墙交朋友,大厂“塑料友情”能否帮百度啃下硬骨头?
随机推荐
jsp中使用JDBC连接mysql的方法与实例
[Excel知识技能] 将“假“日期转为“真“日期格式
[C language] Detailed explanation of data storage
一条SQL查询语句是如何执行的?
三栏布局实现
There is no recycle bin for deleted files on the computer desktop, what should I do if the deleted files on the desktop cannot be found in the recycle bin?
mysql数据库高级操作
2. 依赖管理和自动配置
特殊类与类型转换
CDN原理与应用简要介绍
String
9. Rest style request processing
Easy-to-use translation plug-in - one-click automatic translation plug-in software
MySQL数据库基础操作
闭包详解,柯里化的含义及操作方法
11. 自定义转换器
如何快速把握行业机会,更高效地推陈出新,是一个重要的命题
CSDN21天学习挑战赛之折半查找
开启新征程——枫叶先生第一篇博客
sqlmap结合dnslog快速注入