LeetCode每日打卡-387. 字符串中的第一个唯一字符

简介: LeetCode每日打卡-387. 字符串中的第一个唯一字符24

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

难度简单429收藏分享切换为英文接收动态反馈

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

示例:

s = "leetcode"
返回 0

s = "loveleetcode"
返回 2

提示:你可以假定该字符串只包含小写字母。

import java.util.*;
class Solution {

    public int firstUniqChar(String s) {
        char[] chars = s.toCharArray();
        
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        
        // 重复的字符顶为-1;
        for(int i=0;i<=s.length()-1;i++){
            if(map.containsKey(chars[i])){
                map.put(chars[i],-1);
            }else{
                map.put(chars[i],i);
            }
        }
        // 然后再便利一遍如果是第一个出现的不为-1 的我们就返回
        for(int i=0;i<=s.length()-1;i++){
           int value = map.get(chars[i]);
            if(value!=-1){
                return value;
            }
            
        }
        return -1; 
    }
}
目录
相关文章
|
2天前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
35 6
|
2天前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
25 5
【刷题】 leetcode 面试题 01.06 字符串压缩
|
2天前
leetcode代码记录(删除字符串中的所有相邻重复项
leetcode代码记录(删除字符串中的所有相邻重复项
11 0
|
2天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
24 1
|
2天前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
2天前
|
机器学习/深度学习 索引
【力扣】387. 字符串中的第一个唯一字符
【力扣】387. 字符串中的第一个唯一字符
|
2天前
|
网络协议
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
|
2天前
|
存储
leetcode2744. 最大字符串配对数目
leetcode2744. 最大字符串配对数目
17 0
|
2天前
|
机器学习/深度学习 NoSQL Shell
力扣刷题-翻转字符串
力扣刷题-翻转字符串
12 1