题目描述
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符。
分类:字符串
解法1:使用hashmap,不过因为只是字母,所以可以使用数组代替。
遍历字符,记录下字符出现过的次数,返回次数唯一的字符即可
分类:字符串
解法1:使用hashmap,不过因为只是字母,所以可以使用数组代替。
遍历字符,记录下字符出现过的次数,返回次数唯一的字符即可
public class Solution {
public int FirstNotRepeatingChar(String str) {
if(str.length()==0) return -1;
int arr[] = new int[26];
int mark = -1;
char[] chars = str.toCharArray();
char temp;
if(chars[0]>='a') temp='a';
else temp = 'A';
for(int i=0;i<chars.length;i++){
arr[chars[i]-temp]++;
}
for(int i=0;i<chars.length;i++){
if(arr[chars[i]-temp]==1){
mark = i;
break;
}
}
return mark;
}
}