算法题目---第一个只出现一次的字符
2017-07-31 09:06
239 查看
在字符中找出第一个只出现一次的字符。
如输入"abaccdeff",则输出'b'
char FirstNotRepeat(char* pString)
{
if(pString == NULL)
return '\0';
const int tableSize = 256;
unsigned int hashTable[tableSize];
for(unsigned int i = 0; i < tableSize;++i)
hashTable[i] = 0;
char* pHashKey = pString;
while(*(pHashKey) != '\0')
hashTable[*(pHashKey++)]++;
pHashKey = pString;
while(*pHashKey != '\0')
{
if(hashTable[*pHashKey] == 1)
return *pHashKey;
pHashKey++;
}
return '\0';
}
void Test(char* pString, char expected)
{
if(FirstNotRepeat(pString) == expected)
printf("Test passed.\n");
else
printf("Test failed.\n");
}
int main()
{
Test("google", 'l');
Test("aabccdbd", '\0');
Test("abcdefg", 'a');
Test(NULL, '\0');
return 0;
}
如输入"abaccdeff",则输出'b'
char FirstNotRepeat(char* pString)
{
if(pString == NULL)
return '\0';
const int tableSize = 256;
unsigned int hashTable[tableSize];
for(unsigned int i = 0; i < tableSize;++i)
hashTable[i] = 0;
char* pHashKey = pString;
while(*(pHashKey) != '\0')
hashTable[*(pHashKey++)]++;
pHashKey = pString;
while(*pHashKey != '\0')
{
if(hashTable[*pHashKey] == 1)
return *pHashKey;
pHashKey++;
}
return '\0';
}
void Test(char* pString, char expected)
{
if(FirstNotRepeat(pString) == expected)
printf("Test passed.\n");
else
printf("Test failed.\n");
}
int main()
{
Test("google", 'l');
Test("aabccdbd", '\0');
Test("abcdefg", 'a');
Test(NULL, '\0');
return 0;
}
相关文章推荐
- 2014UC的最后一道题题目:第一个只出现一次的字符[算法]
- 算法题目-第一个只出现一次的字符
- 【算法19】第一个只出现一次的字符
- 算法题之查找第一个只出现一次的字符
- 第一个只出现一次的字符[算法]
- 九度 题目1283:第一个只出现一次的字符
- 面试算法(三十五)第一个只出现一次的字符
- 华为OJ题目(一):找出字符串中第一个出现一次的字符
- [九度OnlineJudge][剑指Offer]题目1283:第一个只出现一次的字符
- 算法---在一个字符串中找到第一个只出现一次的字符
- [九度oj]题目1283:第一个只出现一次的字符
- 微软算法100题17 字符串中找到第一个只出现一次的字符
- 【算法】找到只出现一次的第一个字符
- 【剑指Offer面试编程题】题目1283:第一个只出现一次的字符--九度OJ
- 经典算法学习——第一个只出现一次的字符
- 题目1283:第一个只出现一次的字符
- 【剑指Offer面试编程题】题目1283:第一个只出现一次的字符--九度OJ
- 九度_题目1283:第一个只出现一次的字符
- 算法十二:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 第17 题:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。