实现代码:
char GetFirstNotRepeatChar(char* pData)
{
if (nullptr == pData) return '\0';
const int TEMP_DATA_SIZE = 256;
int tempDatas[TEMP_DATA_SIZE]; // 用来存储字符出现的次数
std::memset(tempDatas, 0, sizeof(int) * TEMP_DATA_SIZE);
for (char* pCurData = pData; *pCurData != '\0'; ++pCurData)
++(tempDatas[*pCurData]);
for (char* pCurData = pData; *pCurData != '\0'; ++pCurData)
if (1 == tempDatas[*pCurData]) return *pCurData;
return '\0';
}
本文介绍了一种通过遍历字符串并使用数组记录每个字符出现次数的方法,来寻找字符串中第一个不重复字符的C/C++实现。该算法首先统计所有字符的出现频率,然后再次遍历字符串,返回第一个出现次数为1的字符。

被折叠的 条评论
为什么被折叠?



