第乙個只出現一次的字元 陣列中重複的數字

2021-08-07 05:36:39 字數 1248 閱讀 4714

在乙個字串(1<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置

思路1:利用map儲存每個字母的值和出現的次數,判斷第乙個只出現一次的字元

class solution 

return -1; //如果沒有找到則返回-1

}};

思路2:利用hash表

class solution ;

for(int i = 0; i < str.size(); i++)

hashtime[str[i]]++; //在hash表中統計各字母出現次數

for(int i = 0; i < str.size(); i++)

return -1;

}};

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。

class solution 

mapmp;

for(int i = 0; i < length; i++)

mp[numbers[i]]++; //統計次數

for(int i = 0; i < length; i++)

}return false;

}};

思路2:利用map,計算每個數出現的次數,只要有次數不為1的,則輸出並返回true

最簡單的方法:構造乙個容量為n的輔助陣列b,原陣列a中每個數對應b中下標,首次命中,b中對應元素+1。如果某次命中時,b中對應的不為0,說明,前邊已經有一樣數字了,那它就是重複的了。

舉例:a,剛開始b是,開始掃瞄a。

a[0] = 1  

a[1] = 2

a[2] = 3

a[3] = 3 ,到這一步,就已經找到了重複數字。

a[4] = 4

a[5] = 5

class solution 

mapmp;

for(int i = 0; i < length; i++)

}return false;

}};

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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

第乙個只出現一次的字元

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