关闭

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

标签: 字符串中第一个只出现1次的字符
544人阅读 评论(0) 收藏 举报
分类:


题目:在一个字符串中找到第一个只出现一次的字符。如输入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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:84407次
    • 积分:1120
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:22篇
    • 译文:1篇
    • 评论:22条
    最新评论