字符串中的第一个唯一字符

字符串中的第一个唯一字符 C++ 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。这个时候题目没有要求是多少时间复杂度,并且字符串中也只有小写字母,暂时不考虑大写字母;初步想法是两次遍历找到字符串中重复的字符;然后动态申请一个与字符串大小一样的数组;将出现重复的位置标1;最后寻找数组中第一个0的位置就行;具体的代码如下:#include<iostream> #include<... 阅读详情

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:
s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

注意事项:您可以假定该字符串只包含小写字母。


解法1:

思路:把字符串使用toCharArray()转换成字符数组,遍历字符数组,使用LinkedHashMap (顺序不变)以字符为key,字符在字符串中的索引为value,如果key出现不只一次则对应的value置为-1。最后使用entrySet方法遍历map,把第一个value不为-1的value返回,如果遍历结束没有发现有符合要求的,返回-1.

class Solution {
    public int firstUniqChar(String s) {
       Map<Character,Integer> map=new LinkedHashMap<Character,Integer>();
        char[] array=s.toCharArray();
        int n=array.length;
        for(int i=0;i<n;i++){
            if(!map.containsKey(array[i])){
                map.put(array[i],i);
            }else{
                map.put(array[i],-1);
            }
        }

        for(Map.Entry<Character,Integer> entry : map.entrySet()){
            if(entry.getValue()!=-1){
                return entry.getValue();
            }
        }
     return -1;  
    }
}


解法2:

**思路:**leetcode高效率答案,使用indexOf(),lastIndexOf()等方法。

class Solution {
    public int firstUniqChar(String s) {
     int result = -1;
            for(char c = 'a';c<='z';c++){
                int index = s.indexOf(c);
                if(index != -1 && index == s.lastIndexOf(c)){
                    result = result != -1?Math.min(result,index):index;
                }
            }
            return result;
    }
}
注意:总结 java的集合,entrySet这两块知识。
Unity集成阿里Qwen2.5-Omni全模态大模型实战:语音交互与多模态AI开发指南 本文详细介绍了在Unity中集成阿里Qwen2.5-Omni全模态大模型的实战指南。通过C#脚本开发,实现语音交互、图像分析等多模态AI功能,涵盖API调用、音频处理、流式响应解析等核心步骤,为游戏、虚拟人等Unity应用提供沉浸式智能交互解决方案。 阅读详情

相关推荐

基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.

wybarcelona的博客 3万+

算法:返回字符串中第一个不重复字符的索引

题目描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2 思路: 先使用lodash的_countBy()方法返回每个字体出现的字数,(这是一个对象) 然后使用entries()方法返回数组的键值对,再去循环此键值对,在循环中通过值寻找上方返回哈希表中的字符,如果字符出现次数为1,直接返回此键值对的健(index) 解法: /** * @param {st

一枚不断学习的小码农一枚~ 1169

莆田市C++专项选拔第一轮题4

现在小明同学想要从两堆硬币中各选择一枚硬币,使得两枚硬币的面值之和 不超过 k。不同的硬币组合,就算面值相同,也视为不同的方案。现在他把这些硬币分成了两堆,已知两堆硬币分别有 n 和 m 枚硬币。可选方案有: (1,2), (1,1), (1,1), (5,2), (5,1), (5,1),共 6 种。第一行三个整数 n, m, k,分别表示第一堆硬币的数量,第二堆硬币的数量,以及面值之和的上限。对于30%的数据,1 ≤ n , m ≤ 1000 , 1 ≤ b , c ≤ 1000。

lpstudio的博客 925

387. 字符串中的第一个唯一字符

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。输入: s = “loveleetcode”输入: s = “leetcode”输入: s = “aabb”

long_steve的博客 213

手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南

本文提供了手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南。针对国内用户网络不稳定导致自动下载失败的问题,文章核心介绍了如何从错误信息中获取下载链接,使用浏览器或下载工具完成手动下载,并通过指定本地文件路径和参数在R中成功安装。该方法同样适用于SeuratData包中的其他数据集,是单细胞分析入门的必备生存技能。

weixin_29054399的博客 185

别再死磕U-Net了!用PyTorch手把手教你搭建ResUnet,搞定医学图像分割(附完整代码)

本文详细介绍了如何利用PyTorch搭建ResUnet模型,通过引入残差连接解决医学图像分割中的梯度消失、特征退化和细节丢失问题。与传统U-Net相比,ResUnet在Dice系数和收敛速度上均有显著提升,特别适合处理脑部MRI等复杂医学图像。文章还提供了完整的代码实现和关键训练技巧,帮助开发者快速掌握这一先进技术。

weixin_42552637的博客 327

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

1.题目 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 2.代码展示 int firstUniqChar(char * s){ int arr[26]={0}; int len = strlen(s); int n=0; f...

qq_41152046的博客 5643

基于STM32的家用新风系统智能控制器 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了家用新风系统智能控制器的全功能开发,覆盖多传感器数据采集、双模式控制、PID调速、异常报警、掉电记忆等核心功能,全程采用保姆式无跳步教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 468

如何找出字符串中的第一个唯一字符?

01、题目分析 第387题:字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1 。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项: 您可以假定该字符串只包含小写字母。 常考题目,建议自行思考 1-2 分钟先~ 02、题目图解 题目不难,直接进行分析。由于字母共有 26 个,所以我们可以声明一个 26 个长度的数组(该种方法在本类题型很常用)因为字符串

Google大神 1325

VSCode玩转Arduino:手把手解决‘未定义Serial’和头文件找不到的坑

本文详细介绍了在VSCode中配置Arduino开发环境时遇到的‘未定义Serial’和头文件找不到问题的解决方案。通过修改c_cpp_properties.json文件、调整IntelliSense引擎设置以及添加正确的库路径,开发者可以高效解决这些常见错误,提升开发体验。文章还提供了针对不同开发板和平台的高级配置技巧,确保配置的长期有效性。

weixin_42620202的博客 359

YOLO11涨点优化:卷积魔改 | DCNv2升级版本,助力检测

在DCN的基础上,增加了2个创新点,分别是调制模块和使用多个调制后的DCN模块,从形成了DCN的升级版本——DCNv2

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 969

字符串中的第一个唯一字符(java)

1.字符串中的第一个唯一字符 第一次拿Java写算法(我太菜了)! 我的代码 static int firstUniqChar(String s) { int[] count = new int[26]; for (int i = 0; i < s.length(); i++) { count[s.charAt(i) - 'a'...

weixin_44181400的博客 1460

秋招突击——笔试整理——8/25——拼多多笔试整理

继续加油! 转变思维,有简单到复杂,由直观到抽象,这种贪心模拟的题目一直是这样的!

Blackoutdragon的博客 2402

LeetCode 387: 字符串中的第一个唯一字符

目录LeetCode 387: 字符串中的第一个唯一字符题目描述解题 LeetCode 387: 字符串中的第一个唯一字符 题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 【示例】 s = “leetcode” 返回 0 s = “loveleetcode” 返回 2 提示:你可以假定该字符串只包含小写字母。 解题      class Solution { public: int firstUniqChar(string s) {

s_Shune 200

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LeetCode - 387. 字符串中的第一个唯一字符

【摘要】本文解析了力扣387题"字符串中的第一个唯一字符"的解法。正确解法使用哈希表(unordered_map)统计字符频率,先遍历字符串记录每个字符出现次数,再遍历查找第一个频率为1的字符。常见错误包括:1)误用vector<char,int>而非哈希表;2)vector无法用字符作为下标;3)遍历对象错误。正确代码应使用unordered_map<char,int>存储频率,并两次遍历字符串,时间复杂度O(n)。示例代码展示了如何正确实现这一算法。

2402_83315537的博客 538

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

力扣题解-387. 字符串中的第一个唯一字符

利用散列表,数组的方法解决题目:387. 字符串中的第一个唯一字符

lpp 4970

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

(字符串)LC字符串中的第一个唯一字符

题目 https://leetcode-cn.com/problems/first-unique-character-in-a-string/ 方法一:哈希表记录频次 遍历一遍字符串,使用一个Map记录字母出现的频次,再一次遍历字符串,第一个出现频次为1的位置即答案。 public int firstUniqChar(String s) { Map<Character , Integer> map = new HashMap<>(); char[]

Sirm23333 498

LeetCode:字符串中的第一个唯一字符(Python版本)

LeetCode刷题日记字符串中的第一个唯一字符Python代码 字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 注意事项: 您可以假定该字符串只包含小写字母。 Python代码 from collections import ...

Cassiel_Coder的博客. 598

leetcode-字符串中的第一个唯一字符

文章目录题目思路小知识点代码优秀代码 题目 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 注意事项:您可以假定该字符串只包含小写字母。 思路 我的想法就是遍历查找,一个一个找 运算过程中对于最后一位单独拿出来算了,这个应该还能优化 小知识点 1.//字符串...

lingle1的博客 498

C++:字符串中的第一个唯一字符

两种方法:时间复杂度为O(n²)和时间复杂度为O(n)的 第一种: class Solution { public: int firstUniqChar(string s) { if(s[0] == NULL) return -1; for(int i = 0; i&amp;lt;s.size(); i++) { ...

l477918269的博客 1770

力扣字符串中的第一个唯一字符

字符串中的第一个唯一字符思路思路1**1.将字符串循环一遍,找到次数为一次的。然后返回下标。找不到的返回-1。** 代码片思路2**大佬的代码。 因为都是小写字母,所以给了一个所有字母的字符串,然后遍历所有的字母,如果字母在字符串s中出现的次数为一,然后记录到数组中去。然后找到最小索引的返回。如果没有就返回-1.** 代码片思路3**看了大佬的代码。然后写了一个不使用数组的代码,执行效率还行,思路...

dayday学习的博客 485

LeetCode刷题——字符串中的第一个唯一字符

大家好,结束了五一假期,继续刷题日记。本次题目要求如下:我的思路是这样的:首先计算出s的长度并将s复制给一个字符串cont,进入while循环,知道字符串s为空,使用.find()函数寻找字符串里是否有与s[0]相同的字符若有,使用remove函数把所有与s[0]相同的字符包括s[0]移到字符串尾部,并用erase删除掉这些字符。若没有,则使用.find寻找这个字符在cont中对应的下标i并返回i...

Miss_yuki的博客 874

前端与算法 leetcode 387. 字符串中的第一个唯一字符

文章目录前端与算法 leetcode 387. 字符串中的第一个唯一字符题目描述概要提示解析解法一:双循环解法二:Set法单循环算法传入测试用例的运行结果执行结果GitHub仓库查看更多 前端与算法 leetcode 387. 字符串中的第一个唯一字符 题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0...

墨抒颖 670

python-leetcode-387. 字符串中的第一个唯一字符

你可以使用 Python 来解决这个问题。以下是一个高效的解法,使用。

Lucy_wzw的博客 1063
上一篇: 颠倒整数
下一篇: 有效的字母异位词
coder_flag
博客等级 码龄9年 2粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值