面试题35:第一个只出现一次的字符

来源:互联网 发布:unity3d瀑布 编辑:程序博客网 时间:2024/06/05 02:01

题目描述

在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
import java.util.HashMap;public class Solution {    public int FirstNotRepeatingChar(String str) {        if(str==null||str.length()==0)            return -1;              HashMap<Character,Integer> hm=new HashMap<Character,Integer>();        for(int i=0;i<str.length();i++){            char c=str.charAt(i);            if(hm.containsKey(c)){                int time=hm.get(c);                time++;                hm.put(c,time);            }            else{                hm.put(c,1);            }        }                for(int i=0;i<str.length();i++){            char c=str.charAt(i);            if(hm.get(c)==1)                return i;        }        return -1;    }}