第一个只出现一次的字符

来源:互联网 发布:淘宝买家订单能导出吗 编辑:程序博客网 时间:2024/06/10 15:38

题目描述

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
自己的想法,觉得简便,但是就是运行不出来

char[] arr = str.toCharArray();        int len = 0;        HashMap<Character, Integer> map = new HashMap<Character, Integer>();        for(int i = 0; i < arr.length; i++) {            if(!map.containsKey(arr[i])) {                map.put(arr[i], 1);                if(len == 0) len = i;            } else {                if(arr[len] == arr[i]) {                    len = 0;                }            }        }        return len;

可得出来

import java.util.HashMap;public class Solution {    public int FirstNotRepeatingChar(String str) {        HashMap<Character,Integer> map = new HashMap<Character,Integer>();        for(int i=0; i<str.length(); i++) {            if( map.containsKey(str.charAt(i)) ) {                map.put(str.charAt(i), map.get(str.charAt(i))+1);            }else {                map.put(str.charAt(i), 1);            }        }        for(int i=0; i<str.length(); i++) {            if( map.get(str.charAt(i)) == 1)                return i;        }        return -1;    }}


原创粉丝点击