LeetCode 387. 字符串中的第一个唯一字符

LeetCode 387. 字符串中的第一个唯一字符

  • 题目描述
    • 思路
    • 第一种python代码
    • 第二种python代码

题目描述

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = “leetcode”
返回 0.

s = “loveleetcode”,
返回 2.

注意事项:您可以假定该字符串只包含小写字母。

思路

本题可有两种思路,第一种为硬核解法,直接遍历s,如果s.count(i) ==1,则返回i的索引。第二种为创建一个字典,将s中的字母加入之中,然后遍历s的字母.

第一种python代码

class Solution:
    def firstUniqChar(self, s: str) -> int:
    for i in s:
    	if s.count(i) == 1:
    		return s.index(i)
    return -1

第二种python代码

class Solution:
    def firstUniqChar(self, s: str) -> int:
        dic = {}
        for i in s:
            if i not in dic:
                dic[i] = 1
            else:
                dic[i] += 1
        for j in range(len(s)):
            if dic[s[j]] == 1:
                return j
        
        return -1

你可能感兴趣的:(LeetCode 387. 字符串中的第一个唯一字符)