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

简介:

题目

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

示例:

s = "leetcode"
返回 0

s = "loveleetcode"
返回 2

提示:你可以假定该字符串只包含小写字母。

解题思路

class Solution:
    def firstUniqChar(self, s: str) -> int:
        # #通过内置函数in来实现
        # sList = list(s)
        # if len(s) == 1:return 0#处理1个字符串的异常情况
        # for i in range(len(s)):
        #     if (sList[i] not in sList[i+1:]) and (sList[i] not in sList[:i]):
        #         return i
        # return -1
        # #字典实现
        # wordsList = [chr(i) for i in range(97, 97+26)]
        # valueList = [0]*26
        # wordsDic = dict(zip(wordsList, valueList))
        # sList = list(s)
        # if len(s) == 1: return 0  # 处理1个字符串的异常情况
        # for i in range(len(s)):
        #     wordsDic[sList[i]] += 1
        # for i in range(len(s)):
        #     if wordsDic[sList[i]] == 1:
        #         return i
        # return -1
        #取巧方法,左右遍历如果找到的索引是相同,代表只有一个字母
        for i in s:
            if s.find(i) == s.rfind(i):
                return s.find(i)
        return -1
目录
相关文章
|
1月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
1月前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
23 0
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
1月前
|
网络协议
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
|
1月前
|
存储
leetcode2744. 最大字符串配对数目
leetcode2744. 最大字符串配对数目
17 0
|
1月前
|
机器学习/深度学习 NoSQL Shell
力扣刷题-翻转字符串
力扣刷题-翻转字符串
12 1
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
23 0
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
31 8
|
1月前
|
算法 测试技术 索引
力扣面试经典题之数组/字符串(二)
力扣面试经典题之数组/字符串(二)
13 0
力扣1849 哪种连续子字符串更长
力扣1849 哪种连续子字符串更长