码迷,mamicode.com
首页 > 其他好文 > 详细

字符串-查找第一个只出现一次的字符

时间:2015-11-07 23:17:24      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

 

一、算法描述

    给定一个字符串,找出字符串中第一个只在整个字符串中出现一次的字符。

二、算法思路

    此题比较简单,常规方法如直接遍历整个字符串,从第一个字符开始,逐一和后续字符比较,看是否在字符串出现,第二种方法是根据字符ascii特性,借助辅助数组,类似于hash数组,以字符的ascii为下标,以字符出现的次数为hash元素值,先统计出各个字符出现的次数,然后再遍历整个字符串,判断其在hash中出现的次数是否为1,为1则表示第一次出现,直接输出即可

三、算法代码

    此处只给出第二种方法的代码

#include <iostream>
#include <cstring>
using namespace std;
//hash method, two loop, o(n)
void find_char(char *s, int n)
{
    int *pc = new int[256];
    memset(pc,0,sizeof(int)*256);
    int i=0;
    for(i=0;i<n;++i)
        pc[s[i]]++;
    for(i=0;i<n;++i)
    {
        if(pc[s[i]]==1)
        {
            cout<<s[i]<<endl;
            break;
        }    
    }    
}

int main()
{
    char src[256]="abacbcdeff";
    
    find_char(src,strlen(src));
    return 0;
}

字符串-查找第一个只出现一次的字符

标签:

原文地址:http://www.cnblogs.com/ballwql/p/4946258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!