专栏首页freesan44LeetCode 387. 字符串中的第一个唯一字符

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 242. 有效的字母异位词

    进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

    freesan44
  • Xcode12适配The linked library is missing one or more architectures required by this target问题

    在Target-Build Settings-Excluded Architectures中添加以下代码

    freesan44
  • LeetCode 392. 判断子序列

    你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

    freesan44
  • Data Structures and Algorithms Basics(017):String

    用户5473628
  • Leetcode 387:字符串中的第一个唯一字符

    和出现次数有关的,不要犹豫,hash 具体思路:首先用字典统计每个字符出现的频率,然后顺序遍历字符串,并在字典中进行查找,出现频率为1,返回。 时间复杂度O(n...

    故事尾音
  • 数据结构题集(严书)图 常见习题代码

    7.25 /*假设对有向图中n个顶点进行自然编号并以三个数组s[1..max],fst[1..n],lst[1..n]表示之其中数组s存放每个顶点的 后继顶...

    glm233
  • LeetCode 678. 有效的括号字符串(栈)

    给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:

    Michael阿明
  • 小技巧让你的 if else 看起来更漂亮

    刚看到一个提问帖: 《如果程序中出现多层嵌套的 if...else...语句,如何重构可使程序逻辑变得更为清晰易读?》,因回答篇幅比较大,单独开个帖子答一下。 ...

    wangxl
  • 【LeetCode】(No.014)最长公共前缀

    最长公共前缀指的是字符串数组中所有公共最长的前缀。 如果是空串的话,那么说明前缀就是“” 如果都是以“ ”开头的,那么就是“ ” 然后最长的前缀不会超过最短的字...

    PM小王
  • Android文件操作工具类详解

    本文实例为大家分享了Android文件操作工具类的具体代码,供大家参考,具体内容如下

    砸漏

扫码关注云+社区

领取腾讯云代金券