leetcode-387-字符串中的第一个唯一字符

Posted nxzblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-387-字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。

问题:

技术图片

 

package com.example.demo;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Test387 

    /**
     * 方法一:借助set
     */
    public int firstUniqChar(String s) 
        if (s == null || s.length() == 0) 
            return -1;
        
        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) 
            String sub = s.substring(i, i + 1);
            map.put(sub, map.getOrDefault(sub, 0) + 1);
        
        for (int i = 0; i < s.length(); i++) 
            String sub = s.substring(i, i + 1);
            if (map.get(sub) == 1) 
                return i;
            
        
        return -1;
    

    /**
     * 方法二:利用桶站位
     * 问题提示:都是小写字母,所以新建的数据也就是26个长度
     */
    public int firstUniqChar1(String s) 
        int len = s.length();
        int[] bucket = new int[26];
        for (int i = 0; i < len; i++) 
            char c = s.charAt(i);
            bucket[c - ‘a‘]++;
        

        for (int i = 0; i < len; i++) 
            char c = s.charAt(i);
            if(bucket[c - ‘a‘] == 1)
                return i;
            
        
        return -1;
    

    public static void main(String[] args) 
        Test387 t = new Test387();
        int asdad = t.firstUniqChar1("asdad");
        System.out.println(asdad);
    

 

以上是关于leetcode-387-字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

leetcode387 C++ 84ms 字符串中的第一个唯一字符

leetcode 387. 字符串中的第一个唯一字符(First Unique Character in a String)

⭐算法入门⭐《哈希表》简单01 —— LeetCode 387. 字符串中的第一个唯一字符