First Unique Character in a String

来源:互联网 发布:java 数组去重效率 编辑:程序博客网 时间:2024/05/18 21:48

Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.

Examples:
s = “leetcode”
return 0.
s = “loveleetcode”,
return 2.
Note: You may assume the string contain only lowercase letters.
此题意思是找出字符串中第一次出现的字符(所以字符假设均为小写)所在的位置。
思路:先建一个字符数组(向量),遍历字符串所有字符,将其映射到字符数组(向量)中。即将每个字符s[i]映射到字符数组中的s[i]-‘a’位置。

#include<iostream>#include<string>#include<vector>using namespace std;int findUniqchar(string s){    int pos;    vector<int> nums(26);    for(vector<int>::size_type i=0;i<s.size();i++)//将字符映射到字符向量nums[]中        nums[s[i]-'a']++;    for(vector<int>::size_type i=0;i<s.size();i++)    {        if(nums[s[i]-'a']==1)            return i;    }    return -1;}int main(){    int res;    string s1="loveleetcode";    res=findUniqchar(s1);    cout<<res<<endl;    return 0;}
0 0