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

原创 2013年12月03日 19:19:45


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

析:可以用一种简单的hashTable结构来解决这一问题,以字符所对应的ASCII码值作为key,以该字符出现的次数作为value。遍历完字符串的,hashTable中便存储了所有字符出现的次数。然后,再依次查找字符串中字符出现的次数,返回次数等于1的即可。

// 13_第一个只出现一次的字符.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#define  HashSize 256
using namespace std;


char FindFirstNotRepeatingChar(char *str)
{
	char hashTable[HashSize];
	for(int i = 0;i<HashSize;i++)
	{
		hashTable[i] = 0;
	}

	for(int i=0;str[i]!='\0';i++)
	{
		hashTable[str[i]]++;
	}

	for(int i=0;str[i]!='\0';i++)
	{
		if(hashTable[str[i]]==1)
			return str[i];
	}
	return 0;
}


int _tmain(int argc, _TCHAR* argv[])
{
	char *str = "abaccdeff";
	cout<<"第一个只出现一次的字符:"<<FindFirstNotRepeatingChar(str);
	return 0;
}

相关文章推荐

在一个字符串中查找第一个只出现一次的字符,要求复杂度为O(N)

注意:这道题的特点是查找出现一次的字符,那么就可以利用字符的特点,因为字符的个数不可能大于256,所以就可以用一个含有256个元素的数组统计所有字符出现的次数,最后再遍历一遍数组,找到次数为1的字符即...

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

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:如果字符都是8位,可以用256B的空间表示每个字符的出现次数,遍历字符串一遍完成计数,第二次遍历该字符...
  • whz_zb
  • whz_zb
  • 2012年04月03日 22:48
  • 1862

查找一个字符串中第一个只出现两/一次的字符

题目:查找一个字符串中第一个只出现两/一次的字符 一、查找一个字符串中第一个只出现两次的字符。 比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复...

第17题:返回字符串中第一个只出现一次的字符

欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45193239 第17题:在一个字符串中找到第一个只出现一次的字符。...

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

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字...

【google 2006年笔试题】 在一个字符串中找到第一个只出现一次的字符(包括普通汉字)

【google 2006年笔试题】 在一个字符串中找到第一个只出现一次的字符(包括普通汉字)...

经典面试题--字符串系列(二)--找出第一个出现一次的字符

题目:在字符串中找出第一个出现一次的字符串,如输入“”

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

该题采用遍历即可: 看到这个题目,最直观的想法就是就是遍历法,也就是从头开始取字符串中的一个字符,将其与其后的所有字符比较,如果有相同的字符,那么就证明它不是只出现一次的字符。当第一次出现遍历完其后...

算法与数据结构面试题(21)-在一个字符串中找到第一个只出现一次的字符

题目 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 解题思路 上一道题是求字符串中各个字符的个数,其实大同小异,这道题比上道题还要简单点,只...

华为OJ ---找出字符串中第一个只出现一次的字符(java实现)

题目描述:找出字符串中第一个只出现一次的字符详细描述:接口说明原型:bool FindChar(char* pInputString, char* pChar);输入参数:char* pInputSt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查找字符串中第一个只出现一次的字符
举报原因:
原因补充:

(最多只允许输入30个字)