第乙個只出現一次的字元

2021-09-30 12:47:52 字數 1021 閱讀 2119

來自:劍指offer

分析:通過兩次遍歷字串計算得到,第一次遍歷字串通過乙個陣列確定每個字元出現的次數,第二次遍歷字串確定第乙個只出現一次字元是誰。時間複雜度為o(n)。

[cpp]view plain

copy

print?

#include "stdafx.h"

#include 

using

namespace

std;  

char

firstnotrepeatingchar(

const

char

* pstring)  

if( *pstart != 

'\0'

)  return

*pstart;  

else

return

'\0'

;  }  

int_tmain(

intargc, _tchar* ar**)    

擴充套件:

1:實現一函式,給定兩個字串str1和str2,將字串str2中在str1出現的字元刪除掉。例如,str1=「we are strudent」,str2=「eas」,最終返回「w r tudnt」。

做法:遍歷str2並將其字元放入雜湊陣列中,再遍歷str1,去掉雜湊陣列中存在的字元即可。與上題思路一致。時間複雜度為o(n+m),n和m分別為str1和str2的長度。空間為o(1)。

2:實現一函式,將字串**現重複字元全部去掉。例如,str=「google」,那麼返回為「gole」。

做法:類似,可用乙個布林陣列去記錄。第一次出現標誌位true,當第二次訪問該字元時,當前標誌位為true時,刪除當前字元。時間複雜度為o(n),n為str的長度。空間為o(1)。

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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