2022.1.29 LeetCode总结

2022.1.29 LeetCode总结,第1张

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;
    }
}



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存