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-字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章
leetcode387 C++ 84ms 字符串中的第一个唯一字符
leetcode 387. 字符串中的第一个唯一字符(First Unique Character in a String)