在字符串中找出第一个只出现一次的字符

来源:互联网 发布:unity3d 5.0 玻璃材质 编辑:程序博客网 时间:2024/06/05 01:54

/*在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b.没有则返回'#'*/

#include <map>

#include <string>

using namespace std;

char FindFirstOneTime(const string &str)
{
    char result = '#';
    map<char,int> map; //考虑到字符串长度未必巨大,故使用map,使用hash_map亦可.
    for_each(str.begin(),str.end(),[&map](char value) //C++11 lambda表达式
    {
        ++map[value];
    });
    for(auto value : str) //C++11参数推导
    {
        if(map[value] == 1)
        {
        result = value;
        break;
        }
    }
    return result;
}

原创粉丝点击