Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
简单思路:两层遍历。
class Solution {
public:
int firstUniqChar(string s) {
int len=s.length();
int flag=0;
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){
if((i!=j)&&(s[i]==s[j])){
flag=1;
break;
}
}
if(flag==0){
return i;
}
flag=0;
}
return -1;
}
};
提升:使用map将字串里每个字母填入map中并记录数目;去第一个为1的zi
class Solution {
public:
int firstUniqChar(string s) {
if(s.size()==0)
return -1;
map<char,int> hash;
for(auto ch :s)
hash[ch]++;
for(int i=0;i<s.size();i++)
if(hash[s[i]]==1)
return i;
return -1;
}
};
- Total Accepted: 5674
- Total Submissions: 13265
- Difficulty: Easy
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.