“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
解题思路:用一个256个元素的数组存储各字符出现次数,遍历该数组,得到出现次数为两次的字符
char FindSecond(const char* str, int len)
{
assert(str);
char arr[256]={0};
for (int i=0; i<len; i++)
{
arr[str[i]]++;
}
for (int i=0; i<len; i++)
{
if (arr[str[i]]==2)
{
return str[i];
}
}
}