51 劍指Offer 第乙個只出現一次的字元位置

2021-09-14 08:13:37 字數 583 閱讀 2735

在乙個字串中找到第乙個只出現一次的字元,並返回它的位置。

最直觀的解法是使用 hashmap 對出現次數進行統計,但是考慮到要統計的字元範圍有限,因此可以使用整型陣列代替 hashmap。

public int firstnotrepeatingchar(string str)
以上實現的空間複雜度還不是最優的。考慮到只需要找到只出現一次的字元,那麼需要統計的次數資訊只有 0,1,更大,使用兩個位元位就能儲存這些資訊。

public int firstnotrepeatingchar2(string str) 

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

return -1;

}

舉例:cabcac

bs1: c a b

bs2: c a

最後返回的是b

找結果的時候,只找存在於bs1但是不存在與bs2的第乙個值。最後乙個c由於bs2中已經儲存了,完全可以表明c已經重複了,沒必要再儲存了。bs2中儲存的值都是bs1中重複的

Python劍指offer 第乙個只出現一次的字元

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 從0開始計數 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m coding utf 8 class solution def fir...

劍指offer 第乙個只出現一次的字元

在乙個字串 1 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置 我們遍歷這個字串,假設每個當前字元都是只出現一次的,我們分別向前和向後考察是否存在相同字元 向前考察 儲存乙個vector裡面存放所有已知的已經重複過的字元,如果當前字元跟這個vector裡面的字元相...

劍指offer 第乙個只出現一次的字元

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1.將字串轉化成陣列,兩個迴圈,外層迴圈遍歷這個陣列i,內層迴圈也是從0 開始遍歷j,判斷i對應的元素和j對應的元素是否相等,相等的話就說明不是要求的位置,直接開始判斷下乙個元素i p...