题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.
解析:
1.定义与字符对应的数组
①定义容量为26的数组,分别对应26个字符,a-z;
②遍历字符串,字符出现一次,对应的数组位计数加1;
③输出对应数组位为1的字符下标。
public int firstUniqChar1(String s) {
//判断输入的合法性
if (s == null || s.length() == 0)
return -1;
//定义数组对应26个英文字母
int[] arr = new int[26];
//将字符出现的凭次放入对应的数组位
for (int i = 0; i < s.length(); i++){
arr[s.charAt(i)-'a']++;
}
for (int i = 0; i < s.length(); i++){
//如果数组位为1,则返回回该字符的下标
if (arr[s.charAt(i)-'a'] == 1){
return i;
}