『力扣每日一题06』字符串中的第一个唯一字符

今天是学习新知识的一天,String 类中有太多细枝末节,需要我去学习跟掌握了。

话不多说,今天给大家带来一道字符串的题目~

一、题目

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

注意:

  • s 只包含小写字母

示例 1:

复制代码
输入: s = "leetcode"
输出: 0

示例 2:

复制代码
输入: s = "loveleetcode"
输出: 2

示例 3:

复制代码
输入: s = "aabb"
输出: -1

二、思路解析

这道题我的做法是,创建一个用于计数的数组 count [ ],元素个数为 26 ,因为题中要求 " s 只包含小写字母 "。

然后我对字符串进行了一次遍历操作,为的是用 CharAt 函数取出每一个元素,并赋值给一个新字符 ch 。

这样我们就能通过 [ch-'a'] 来访问计数数组 count 的元素下标了,并对其进行 ++ 操作。

接下里一步就是重新遍历一次,并作出判断,题目要求的 "第一次出现的不重复的字符串" ,在我们看来,也就是 count [ ] == 1 而已,符合条件的直接返回即可。

同样,不符合直接返回 -1 ,这道题到这里也就解决了~

三、完整代码

复制代码
class Solution {
    public int firstUniqChar(String s) {
        int[] count = new int [26];
        for(int i = 0;i < s.length();i++){
            char ch = s.charAt(i);
            count[ch-'a']++;
        }

        for(int j = 0;j < s.length();j++){
            char ch = s.charAt(j);
            if(count[ch-'a'] ==1)
            {
                return j;
            }
        }
       return -1; 
    }

}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

相关推荐
天若有情673几秒前
Deepseek-V4-Flash-20260423 深度评测与实战指南
java·大数据·网络·ai
仰泳之鹅2 分钟前
【C语言】动态内存管理
c语言·数据结构·算法
心中有国也有家5 分钟前
CANN 学习新范式:cann-learning-hub 如何让昇腾入门不再「劝退」
人工智能·经验分享·笔记·学习·算法
折哥的程序人生 · 物流技术专研6 分钟前
《Java 100 天进阶之路》第32篇:Java常用工具类(Objects、Collections、Arrays深入)
java·后端·面试·求职招聘
憧憬成为java架构高手的小白7 分钟前
苍穹外卖项目-day02
java·spring
LB21127 分钟前
C++通讯录课设(西安石油大学)
开发语言·c++·算法
AI算法沐枫7 分钟前
机器学习知识点:正则化
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
手写码匠8 分钟前
从零实现一个轻量级向量搜索引擎(Python 版)
人工智能·深度学习·算法·aigc
_Evan_Yao10 分钟前
数据结构太难了?用画图的方式理解链表和栈和树和图
数据结构·学习·链表
学习中.........15 分钟前
多目标优化:遗传算法详解
人工智能·算法·机器学习