例子:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
思路:
遍历两次字符串。
第一次遍历字符串记录下每个字符出现的次数,记录在数组中
第二次遍历字符串找出出现一次的字符,并输出索引
*/
public class Day03_1 {
public int firstUniqChar(String s) {
//创建一个统计次数的数组
int[] num=new int[256];
for(int i=0;i<s.length();i++){
num[s.charAt(i)]=num[s.charAt(i)]+1;
}
for(int i=0;i<s.length();i++){
if(num[s.charAt(i)]==1) return i;
}
return -1;
}
}
在这个例子中,s.charAt(i)返回的是下标为i的字符,此处将字符直接放在数组的括号里做下标。
比如小写字母’a’的ASCII码值为16,那么num[‘a’]就可以找到数组中下标为16的值