• 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);
        }
    }
  • 相关阅读:
    git的使用
    本体建模
    word2vec改进之Negative Sampling
    word2vec改进之Hierarchical Softmax
    word2vec原理
    Window下mysql的安装
    PageRank算法
    集成学习-------简单介绍
    自我介绍
    Apollo学习笔记(二):循迹实现过程
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/11274542.html
Copyright © 2020-2023  润新知