栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022.1.29 LeetCode总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022.1.29 LeetCode总结

文章目录

一、今日刷题

1. 第二部分:字符串 -- 387.字符串中的第一个唯一字符


一、今日刷题 1. 第二部分:字符串 – 387.字符串中的第一个唯一字符

跳转LeetCode

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

示例:
s = “leetcode”
返回 0

s = “loveleetcode”
返回 2


答案代码

使用哈希表存储频数,对字符串进行两次遍历。

在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回它的索引,否则在遍历结束后返回 −1。

package String;

import java.util.HashMap;
import java.util.Map;


public class FirstUniqChar {
    public static void main(String[] args) {
        FirstUniqChar firstUniqChar = new FirstUniqChar();
        int ans = firstUniqChar.firstUniqChar("loveleetcode");
        System.out.println(ans);
    }

    public int firstUniqChar(String s) {
        Map frequencyMap = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            int frequency = frequencyMap.getOrDefault(c, 0);
            frequencyMap.put(c, frequency + 1);
        }
        for (int j = 0; j < s.length(); j++) {
            if (frequencyMap.get(s.charAt(j)) == 1) {
                return j;
            }
        }
        return -1;
    }
}



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722042.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号