第乙個只出現一次的字元

2021-07-06 04:52:32 字數 917 閱讀 5362

不使用hashmap的方法,直接,效率不高

//找到字元陣列中第乙個只出現一次字元的位置

int firstnotrepeatingchar(string str)

;//統計可能出現的字母的次數:a-z,a-z

for (int i=0; i=65 && str[i]<=90)//a-z

cstr[str[i]-65]++;//大寫字母座標對映到0-25

if (str[i]>=97 && str[i]<=122)//a-z

cstr[str[i]-97+26]++;//小寫字母座標對映到26-51

} vectorch;

for (int i=0; i<52; i++)//找到出現次數為 }

vector::iterator it;

for (int i=0; i

使用map

//使用map

int firstnotrepeatingcharmap(string str)

{ if (str=="")

return -1;

mapmp;

for (int i=0; i::iterator it;

for (int i=0; isecond == 1 && it->first==str[i]) {

cout << i <<": "<< it->first <

使用hash_map

int firstnotrepeatingchar2(string str)

{ if (str=="")

return -1;

const int tablesize = 256;

unsigned int hashtable[tablesize];

for (unsigned int i=0; i

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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