查詢第乙個只出現一次的字元

2021-07-03 17:17:35 字數 678 閱讀 9385

這類題目用到的思想就是就用雜湊表,這樣把字串對應到乙個陣列,hashtable中。因為全部的字元總共有256個,因此建立乙個hashtable[256]。

演算法的過程是這樣的,首先遍歷一遍字串,根據字元的值來使得hashtable[字元]做統計,此字元出現一次,那麼對應的陣列元素加一。此時時間複雜度o(logn)。統計完各個字元出現的次數之後,找出次數為一的即可。時間複雜度o(logn)。所以總的時間複雜度o(logn)。空間複雜度o(256)常數級別,應該是o(1)。

下面是**:

// firstnotrepeatingcharctor.cpp : 定義控制台應用程式的入口點。

/* @mishidmeudong

@2015-7-9-16:22

*///

#include "stdafx.h"

#includeusing namespace std;

char firstnotrepeatingchar(char *pstring)

; while (*ptemp != '\0')

ptemp = pstring;

while (*ptemp != '\0')

return '\0';

}int _tmain(int argc, _tchar* argv)

第乙個只出現一次的字元

題目 在乙個字串中找到第乙個只出現一次的字元。如輸入 abaccdeff,則輸 出b。分析 這道題是 2006年google的一道筆試題。看到這道題時,最直觀的想法是從頭開始掃瞄這個字串中的每個字元。當訪問 到某字元時拿這個字元和後面的每個字元相比較,如果在後面沒有發現重複的字 符,則該字元就是只出...

第乙個只出現一次的字元

題目 在乙個字串中找到第乙個只出現一次的字元,並輸出它在字串中的位置。如輸入 abaccdeff,則輸出 b 1。定義乙個256長度的陣列,乙個用來記錄字元出現的次數。然後在遍歷字元陣列,如果該字元出現了一次,輸出並結束,否則繼續。include using namespace std 在乙個字串中...

第乙個只出現一次的字元

1.問題描述 在字串中找出第乙個只出現一次的字元。例如輸入abaccdeff,則輸出 b。來自 劍指offer 2.分析 我們可以用乙個容器來存放 對應的字元和出現次數 雜湊表 這裡僅僅用陣列來簡單的模擬了一下 第一次掃瞄時將出現的次數存放在表中,第二次掃瞄時掃瞄到次數為1的字元並返回該字元即可。表...