程序员面试一百题-13-第一个只出现一次的字符

栏目: IT资讯 · 发布时间: 6年前

内容简介:在一个字符串中找到第一个只出现一次的字符。

1-题目 :

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

2-示例 :

输入 abaccdeff ,输出 b

3-思路 :

第一遍扫描时,每碰到一个字符,在哈希表中找到对应的项并把出现的次数加一;这样在进行第二次扫描时,直接从哈希表中得到每个字符出现的次数,打印出第一个次数为1的字符即可。

4-代码 :

#include 
<iostream>
 
using namespace std;

//true表示存在,false表示不存在或者字符串为空
bool FirstNotRepeatedChar(char *pString)
{
    //若字符串为空
    if (!pString)
    {
        return false;
    }

    //建立一个简单的哈希表,数组的下标对应每一个字符,256的大小对应256个字符
    const int tableSize = 256;
    unsigned int hashTable[tableSize];
    for (unsigned int i = 0; i < tableSize)
    {
        //养成初始化的好习惯
        hashTable = 0;
    }

    //第一次遍历字符串
    char *pHashKey = pString;
    while (*pHashKey != '\0')
    {
        //得到每个字符出现的次数
        hashTable[*pHashKey]++;
        pHashKey++
    }
    //第二次遍历字符串
    pHashKey = pString;
    while (*pHashKey != '\0')
    {
        //若存在出现次数为1的字符,则打印并返回true
        if (hashTable[*pHashKey] == 1)
        {
            cout << "First not repeated char is : " << *pHashKey << ".";
            return true;
        }
        pHashKey++;
    }
    //若不存在出现次数为1的字符,则返回false
    return false;
}
</iostream>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件测试

软件测试

[美]Ron Patton / 张小松、王珏、曹跃 / 机械工业出版社 / 2006-4 / 30.00元

软件测试(原书第2版),ISBN:9787111185260,作者:(美)佩腾(Patton,R.) 著,张小松 等译;张小松译一起来看看 《软件测试》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具