码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer-第一个只出现一次的字符

时间:2020-06-08 19:00:02      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:pre   iterator   剑指offer   字符串   ref   item   cti   interview   字符   

 

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)

 

题目链接:

https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&rp=1&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking

 

 

 

分析:

用一个hashmap,key记录出现的字符,value记录出现的次数。

第一次遍历记录下所有字符及其出现的次数。

第二次遍历找到第一次只出现一次的字符。

 

 

 

import java.util.HashMap;
import java.util.Iterator;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if("".equals(str)){
            return -1;
        }
        //key记录字母,value记录字母出现的次数
        HashMap<Character,Integer> count = new HashMap<>();
        char[] arr = str.toCharArray();
        for(int i=0;i < arr.length;i++){
            if(count.containsKey(arr[i])){
                count.put(arr[i],count.get(arr[i])+1);
            }else{
                count.put(arr[i],1);
            }
        }
        //找到第一个只出现一次的字符即返回
        for(int i=0;i < arr.length;i++){
            if(count.get(arr[i]) == 1){
                return i;
            }
        }
        return 0;
    }
}

 

剑指offer-第一个只出现一次的字符

标签:pre   iterator   剑指offer   字符串   ref   item   cti   interview   字符   

原文地址:https://www.cnblogs.com/MoonBeautiful/p/13067363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!