首页 > 其他 > 详细

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

时间:2019-08-03 00:32:05      阅读:79      评论:0      收藏:0      [点我收藏+]

问题:

技术分享图片

 

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-字符串中的第一个唯一字符

原文:https://www.cnblogs.com/nxzblogs/p/11274542.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!