50 第一个只出现一次的字符
描述
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
使用 hash 表,用一个整数数组作为 hash 表,如果第一次访问,此时值为 0,标记为 1 ,再次访问到发现不是 0 ,标记为 -1
public int FirstNotRepeatingChar(String str) {
int[] arr = new int[256];
for(int i=0;i<str.length();++i){
char c=str.charAt(i);
if(arr[c]==0) arr[c]=1;
else arr[c]=-1;
}
for(int i=0;i<str.length();++i){
if(arr[str.charAt(i)]>0) return i;
}
return -1;
}