1. 程式人生 > >LeetCode刷題記錄——第387題(字串中的第一個唯一字元)

LeetCode刷題記錄——第387題(字串中的第一個唯一字元)

題目描述

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。

案例:

s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.

思路分析

  • 關鍵問題在於,如何找到第一個不重複字元。可以新建一個字典,用key表示對應s中的字元,value表示出現的次數,如果第一次出現,則往後新建key,如果不是第一次出現,value += 1
  • 順序遍歷s,從而在letters中保留了原來s中的順序。

程式碼示例

class Solution(object):
    def
firstUniqChar(self, s): """ :type s: str :rtype: int """ letters = {} for ch in s: if ch not in letters: letters[ch] = 1 else: letters[ch] += 1 for i in range(len(s)): if letters[
s[i]] == 1: return i return -1