0
点赞
收藏
分享

微信扫一扫

Leetcode 387. 字符串中的第一个唯一字符

泠之屋 2022-03-24 阅读 42

387. 字符串中的第一个唯一字符

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。

示例 1:

输入: s = “leetcode”
输出: 0
示例 2:

输入: s = “loveleetcode”
输出: 2
示例 3:

输入: s = “aabb”
输出: -1

思路:使用一个二维数组,记录每个字母出现的次数以及最后一次出现的索引。遍历字符串。
将二维数组中出现为1且出现的位置最靠前的返回。
代码如下:

class Solution {
public:
    int firstUniqChar(string s) {
        int len=s.size();
        int n[26][2];
        for(int i=0;i<26;i++){
            n[i][0]=0;
            n[i][1]=-1;
        }
        for(int i=0;i<len;i++){
            n[s[i]-'a'][0]++;
            n[s[i]-'a'][1]=i;
        }
        int ans=-1;
        int min=len;
        for(int i=0;i<26;i++){
            if(n[i][0]==1){
                ans=1;
                if(n[i][1]<=min){
                    min=n[i][1];
                }
            }
        }
        if(ans==-1)return ans;
        return min;
    }
};
举报

相关推荐

0 条评论