赞
踩
题目链接:387. 字符串中的第一个唯一字符 - 力扣(LeetCode)
- class Solution {
- public:
- int firstUniqChar(string s) {
- unordered_map<char, int> mapch;
- for(auto c : s)
- {
- mapch[c]++;
- }
- for(int i = 0; i < s.size(); i++)
- {
- if(mapch[s[i]] == 1)
- {
- return i;
- }
- }
- return -1;
- }
- };
这个题目看似简单,实际上很考验你对于字符数组的理解,说白了,这个题目中档,一开始我用的是遍历和标记,最后发现不行。换了unordered_map这个方法,这个方法也是映射,也就是遍历一遍给的字符,把单独的字符在char映射到int中增加1,然后在遍历一遍字符,看看哪个是第一个出现且char映射的int数字只有1,这个就是第一个唯一字符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。