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

2021-08-25 17:06:50 字數 407 閱讀 3725

在乙個字串(0<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).

**思路:**想要提高時間複雜度,節約時間,那就只能空間換時間。乙個空間換時間很有效果的資料結構是雜湊表,雜湊表使用時要求,首先使得資料範圍,這裡它說是字串,字元就只有256中,那乙個256大小的陣列就可以儲存,當然還可以用位圖。我們先遍歷一遍字串,統計每個字元出現的次數,在重頭遍歷一遍字串查詢第一次只出現一次的及對應字元下標儲存的數值為1.的該字元就是第乙個只出現一次的。

**實現:

class solution 

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

return -1;

}};

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

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

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

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

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

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 我的思路 第一次遍歷string,用乙個map記錄每個字元出現的次數 第二次遍歷map,找到次數為1的字元 第三次遍歷string,找到該字元出現的位置。問題 ma...