LeetCode 387.字符串中的第一个唯一字符【Java】

不吃牛油果 小卷王 2021-11-06 11:05:40

原文链接: https://blog.csdn.net/m0_47675761/article/details/121175828
@[TOC] (目录)

1.题目

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

示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2

2.思路和代码

两次遍历,第一次遍历计算字符出现的次数,第二次遍历找出出现次数为一的那个字符。

class Solution {
    public int firstUniqChar(String s) {
        int[] tmp = new int[26];//用来记录字符出现次数
        char[] c = s.toCharArray();
        for(int i = 0; i < s.length(); i++){
            tmp[c[i] - 'a']++;
        }
        for(int i = 0; i < s.length(); i++){
            if(tmp[c[i] - 'a'] == 1){
                return i;
            }
        }
        return -1;
    }
}

《Offer消失法》:

class Solution {
    public int firstUniqChar(String s) {
        for(int i = 0; i < s.length(); i++){
            if(s.indexOf(s.charAt(i)) == s.lastIndexOf(s.charAt(i))){
                return i;
            }
        }
        return -1;
    }
}
...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,633

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家来到抱团内卷学习社区,在这里大家可以分享自己的学习笔记,求职心得,一起记录彼此的成长历程。社区群号:94108843,WX公众号:【兴趣使然的草帽路飞】
社区管理员
  • 路  飞
  • 一百个Chocolate
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

最怕你一生碌碌无为,还安慰自己平凡可贵!

努力提高自己的知识储备,助力每一位冲刺大厂的小伙伴!

祝大家前程似锦,offer连连!

注意:每个月活跃积分最高的小伙伴,可以获得社区管理员权限哦!

试试用AI创作助手写篇文章吧