leetcode 字串中的第乙個唯一數字

2021-10-24 10:45:16 字數 876 閱讀 7521

題目:

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

示例

s = 「leetcode」

返回 0

s = 「loveleetcode」

返回 2

提示:你可以假定該字串只包含小寫字母。

解題思路:

線性時間複雜度解法

這道題最優的解法就是線性複雜度了,為了保證每個元素是唯一的,至少得把每個字元都遍歷一遍。

演算法的思路就是遍歷一遍字串,然後把字串中每個字元出現的次數儲存在乙個雜湊表中。這個過程的時間複雜度為 o(n),其中 n 為字串的長度。

接下來需要再遍歷一次字串,這一次利用雜湊表來檢查遍歷的每個字元是不是唯一的。如果當前字元唯一,直接返回當前下標就可以了。第二次遍歷的時間複雜度也是 o(n)。

複雜度分析:

**:

class

solution

(object):

deffirstuniqchar

(self, s)

:"""

:type s: str

:rtype: int

"""#build hasp map

count=collections.counter(s)

#find the index

for idx,ch in

enumerate

(s):

if count[ch]==1

:return idx

return

-1

Leetcode 字串 字串中的第乙個唯一字元

題目 給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。示例 s leetcode 返回 0 s loveleetcode 返回 2 補充知識 1。字串中的charat 方法能將字串中的字元分割。2。hashmap中的方法getordefault key,defaul...

LeetCode 字串中的第乙個唯一字元

給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。案例 s leetcode 返回 0.s loveleetcode 返回 2.注意事項 您可以假定該字串只包含小寫字母。class solution def firstuniqchar self,s str int s...

Leetcode 字串中的第乙個唯一字元

給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。案例 s leetcode 返回 0.s loveleetcode 返回 2.注意事項 您可以假定該字串只包含小寫字母。思路分析 需要逐次使用串中的單個元素和其餘的元素比較 內外兩層迴圈 設定乙個布林型別的變數 初始化...