[剑指offer]面试题35:第一个只出现一次的字符
生活随笔
收集整理的這篇文章主要介紹了
[剑指offer]面试题35:第一个只出现一次的字符
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
面試題35:第一個(gè)只出現(xiàn)一次的字符
題目:在字符串中找出第一個(gè)只出現(xiàn)一次的字符。如輸入"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'; }測試用例:
● 功能測試(字符串中存在只出現(xiàn)一次的字符,字符串中不存在只出現(xiàn)一次字符,字符串中所有字符都只出現(xiàn)一次)。
● 特殊輸入測試(字符串為NULL指針)。
本題考點(diǎn):
● 考查對數(shù)組、字符串的編程能力。
● 考查對哈希表的理解及運(yùn)用。
● 考查對時(shí)間效率及空間效率的分析能力。當(dāng)面試官提示最直觀的算法不是最優(yōu)解的時(shí)候,應(yīng)聘者需要立即分析出這種算法的時(shí)間效率。在想出基于哈希表的算法之后,應(yīng)聘者也應(yīng)該分析出該方法的時(shí)間效率和空間效率分別是O(n)和O(1)。
總結(jié)
以上是生活随笔為你收集整理的[剑指offer]面试题35:第一个只出现一次的字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米第三季度净利润 59.9 亿元同比增
- 下一篇: [剑指offer]面试题37:两个链表的