Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.
Note: You may assume the string contain only lowercase letters.
<Solution>這題是要找沒有重複的字元中,在 string 中第一個出現的
第一種想法
- 準備一個 hash map,記錄所有字元出現的次數
- 按順序去歷遍 string,找到第一個出現次數為1的字元所在的 index
C++
第二種想法(參考資料),會更快一點
- 用兩個指針,指針 cur 指在目前出現次數為1的字元,另一個指針 next 往前找
- 如果 next 指針有更新到 cur 指針指的字元,那麼將 cur 指到下一個出現次數為1的字元
- 如果 cur 指針已經指到尾了,那麼就回傳 -1
C++
沒有留言:
張貼留言