剑指 Offer 50. 第一个只出现一次的字符
这道题我一开始想复杂了,没必要用map的映射关系,只需要按照给定字符串的顺序去遍历就行了。我是通过遍历字符串并把相应字符串的索引在vector对应的元素每次自增一,然后再来一个循环得到这个vector里面第一次出现的最小的元素并返回这个元素对应的字母。
代码如下:
class Solution { public: char firstUniqChar(string s) { vector<int>myvec(26,0); char flag='\0'; for(int i=0;i<s.length();i++){ myvec[(int)(s[i]-'a')]++; } for(int i=0;i<s.length();i++){ if(myvec[(int)(s[i]-'a')]==1){ flag=s[i]; break; } } if(flag!='\0')return flag; return ' '; } };