首页 > 其他 > 详细

[开心IT面试题] 找出字符串中第一个只出现一次的字符

时间:2014-02-12 00:44:04      阅读:498      评论:0      收藏:0      [点我收藏+]

题目:

在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

为了简单起见,假设字符串都是小写字母。


思想:

先遍历一遍,用一个数组统计每一个字符出现的次数。

然后再从字符串的开头开始找出第一个仅出现一次的字符。


代码:

void FirstAppear(char *outputCh, char *intputstr)
{
    if(intputstr == NULL)
    {
        return;
    }

    //26字母出现的次数情况
    int number[26] = {0};
    //备份字符串
    char *tempStr = intputstr;

    //遍历一遍,遇到"\0"终止
    while(*tempStr != ‘\0‘)
    {
        number[(*tempStr++) - 97]++;
    }

    //遍历一遍,从开头找出第一个仅出现一次的字符
    while(*intputstr != ‘\0‘)
    {
        if(number[*intputstr - 97] == 1)
        {
            *outputCh = *intputstr++;
            return;
        }
        *intputstr++;
    }
}



[开心IT面试题] 找出字符串中第一个只出现一次的字符

原文:http://blog.csdn.net/mmoojing/article/details/19078225

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!