题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
思路:
利用一个数组,数组的下标就是输入字符串的字符对应的数字。之后只要遍历这个字符串的数组,查看对应字符的值是否为1;
实现:
import java.util.TreeMap;
import java.util.Iterator;
import java.util.Set;
public class Solution {
public int FirstNotRepeatingChar(String str) {
char[] array = str.toCharArray();
//A的对应的值是65,a对应的值是97,如果int[] a = new int["A"];
//那么这个时候那么a[65]是超出范围了,所以定义这个数组的时候应该+1
int[] arr = new int['z' + 1];
for(char ch : array){
arr[(int)ch]++;
}
for(int i = 0; i < array.length; i ++){
if(arr[(int)array[i]] == 1){
return i;
}
}
return -1;
}
}