欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

[剑指offer]面试题35:第一个只出现一次的字符

发布时间:2023/12/4 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [剑指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:第一个只出现一次的字符的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。