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.
Note: You may assume the string contain only lowercase letters.
解题思路:
题目要求找到第一个不重复的字母,考虑到所有字母总共只有26个,可以通过每个字母的ASCII码,将一个大小超过字母最大ASCII码大小的数组与字母相对应起来,这样就可以记录每一个字母在String中出现的次数,每出现一次arr[s[i]]的值就增加一
之后的工作就是找到在这些只出现了一次的字母中找到第一个出现的字母
代码如下:
class Solution {
public:
int firstUniqChar(string s) {
int arr[500];
for(int i=0;i<500;i++) arr[i]=0;
for(int i=0;i<s.size();i++) arr[s[i]]++;
int min=-1;
for(int i=0;i<500;i++)
{
if(arr[i]==1)
{
for(int t=0;t<s.size();t++)
{
if(s[t]==i&&(min==-1||t<min)) min=t;
}
}
}
return min;
}
};