标签:uniq 暴力 图片 div leetcode 字母 int turn 来源
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
这道题最容易想到的办法当时是暴力求解,拿出一个字符和其他的比较。
class Solution { public: int firstUniqChar(string s) { vector<int> v(256); //存储每个字符个数 vector<int> vd(256); //存储字符的下标 int flag = 0, ans = s.length(); for(int i = 0; i < ans; i++) { v[s[i]]++; vd[s[i]] = i; //如果字符重复下标将会被取代,但是我们也不需要重复字符的下标 } for(int i = 0; i < 256; i++) { if(v[i] == 1) { flag = 1; if(vd[i] < ans) ans = vd[i]; } } if(flag == 1) return ans; return -1; } };
执行效果还不错!
这道题有时会超过28ms,可能判题问题,这种方法多次提交,就有时会在28ms,我用其他方法就算多次提交,目前都没有跑到30ms以内过。
标签:uniq 暴力 图片 div leetcode 字母 int turn 来源
原文地址:https://www.cnblogs.com/li-23/p/11697876.html