刷leetcode-day15

一、题目:

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

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

二、思路:

新建一个含有26个0的vector a,记录字符串s中每个字母的个数,遍历vector a,找到值为1的元素对应的字母,找出该字母在字符串中对应的下标,并存入一个新的vector b。遍历vector b,返回最小值。

三、代码(C++):

int firstUniqChar(string s) {
          vector<int> a(26, 0);
        vector<int> b;
        for (auto s1 : s)
            ++a[s1 - 'a'];
        for (int i = 0; i != a.size(); i++)
        {
            if (a[i] == 1)
            {
                for (int j = 0; j != s.size(); j++)
                    if (s[j] == (i + 'a'))
                        b.push_back(j);
            }
        }
        if (b.size() == 0)
            return -1;
        int t = b[0];
        for (auto a : b)
            if (a < t)
                t = a;
        return t;
    }

全部评论

相关推荐

06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务