题目:
给定一个字符串,找到其中第一个非重复字符并返回它的索引。如果不存在,返回-1。
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
s = "leetcode" return 0.
s = "loveleetcode" return 2.
思路:
同【剑指offer第二版——面试题50(java)】
https://blog.csdn.net/qq_22527013/article/details/90679476
逐个记录次数,再遍历时检查出现次数
如果字符串中只有字母,可以用长度为26的数组来存储次数(如果不是,则用字典即可)
代码:
class Solution {
public int firstUniqChar(String s) {
if(s=="" || s==null) {
return -1;
}
int[] times = new int[26];
s = s.toLowerCase();
for(int i=0;i<s.length();i++) {
times[s.charAt(i)-'a']++;
}
for(int i=0;i<s.length();i++) {
if(times[s.charAt(i)-'a']==1) {
return i;
}
}
return -1;
}
}