关闭

First Unique Character in a String

标签: leetcode
47人阅读 评论(0) 收藏 举报

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16639次
    • 积分:508
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:24篇
    • 译文:0篇
    • 评论:2条
    最新评论