题目:在一个字符串中找到第一个只出现一次的字符。
举例:输入abaccdeff,则输出b。
答:假设字符占一个字节,则共有256不同的字符,开辟256空间,用查找表。
#include "stdafx.h" #include <iostream> using namespace std; void FindFirstOneChar(char *str) { if (NULL == str) { return; } int count[256] = {0}; char *p = str; while (*p != '\0') { count[*p++]++; } p = str; while (*p != '\0') { if (1 == count[*p]) { cout<<*p<<endl; break; } p++; } } int _tmain(int argc, _TCHAR* argv[]) { char chArr[100] = "abaccdeff"; FindFirstOneChar(chArr); return 0; }
运行界面如下: