剑指offer-第一个只出现一次的字符
Posted MoonBeautiful
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。
题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
题目链接:
分析:
用一个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-第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章