zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    51nod 1117 聪明的木匠:哈夫曼树
    51nod 1010 只包含因子2 3 5的数
    51nod 2636 卡车加油
    51nod 2989 组合数
    51nod 2652 阶乘0的数量 V2
    51nod 1103 N的倍数
    51nod 2489 小b和灯泡
    51nod 1003 阶乘后面0的数量
    51nod 2122 分解质因数
    javascript中的setter和getter
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/11274542.html
Copyright © 2011-2022 走看看