[剑指offer]面试题35:第一个只出现一次的字符
生活随笔
收集整理的这篇文章主要介绍了
[剑指offer]面试题35:第一个只出现一次的字符
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
面试题35:第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出’b’。
代码如下:
char FirstNotRepeatingChar(char *pString) {if (pString == nullptr) 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'; }测试用例:
● 功能测试(字符串中存在只出现一次的字符,字符串中不存在只出现一次字符,字符串中所有字符都只出现一次)。
● 特殊输入测试(字符串为NULL指针)。
本题考点:
● 考查对数组、字符串的编程能力。
● 考查对哈希表的理解及运用。
● 考查对时间效率及空间效率的分析能力。当面试官提示最直观的算法不是最优解的时候,应聘者需要立即分析出这种算法的时间效率。在想出基于哈希表的算法之后,应聘者也应该分析出该方法的时间效率和空间效率分别是O(n)和O(1)。
总结
以上是生活随笔为你收集整理的[剑指offer]面试题35:第一个只出现一次的字符的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 小米第三季度净利润 59.9 亿元同比增
- 下一篇: [剑指offer]面试题37:两个链表的