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

原创 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;
}

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

/************************************************************************/ /* 找出字符串中第一个只出现一次的字符 详细描述...
  • liuyi1207164339
  • liuyi1207164339
  • 2016年02月25日 20:51
  • 1504

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

题目描述:找出字符串中第一个只出现一次的字符详细描述:接口说明原型:bool FindChar(char* pInputString, char* pChar);输入参数:char* pInputSt...
  • u011587361
  • u011587361
  • 2015年09月10日 08:48
  • 2589

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

Google 2006年的一道笔试题,难度系数低 题目描述: 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 逻辑分析: 1、简单粗暴O(n^2),...
  • pediy_yuhan
  • pediy_yuhan
  • 2014年05月26日 08:03
  • 3846

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

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

Google笔试题:哈希表的一个意想不到的应用--在字符串中查找第一个只出现一次的字符

1.问题描述 在一个字符串中找到第一个只出现一次的字符。如输入AbAssvfFCCBbhV,则输出v。   2.解题思路 如果按照传统比较的办法,时间复杂度是O(n*n),这显然不是Google面试官...
  • wangzhicheng2013
  • wangzhicheng2013
  • 2012年11月29日 22:13
  • 1946

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

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

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

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

【C语言】找出一个字符串中第一个只出现一次的字符

题目描述:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 方法一:     简单粗暴的遍历完成,只适用于字符串较...
  • sofia_m
  • sofia_m
  • 2017年11月12日 17:58
  • 181

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

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

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

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。   看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的...
  • Travelerwz
  • Travelerwz
  • 2017年06月01日 10:38
  • 310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查找字符串中第一个只出现一次的字符
举报原因:
原因补充:

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