0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LeetCode初级算法-字符串02:字符串中的第一个唯一字符

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

LeetCode初级算法--字符串02:字符串中的第一个唯一字符

一、引子

这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。

二、题目

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

1、思路

首先我们可以想到这道题需要的是一个不重复的字符,我们顺序找到第一个不重复的字符,把其索引存起来,返回最小的索引也就是第一个不重复的字符了。

注:使用count方法,会增加时间复杂度,所以我们用字典记录各字符的索引。如果重复出现,则索引值需要加上len(s),小于len(s)的那个索引就是我们求的值。

2、编程实现

python

class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        #算法超时
        # res = []
        # for i in s:
        #     if s.count(i) == 1:
        #         res.append(s.index(i))
        # if len(res):
        #     return min(res)
        # return -1
        
        # 用字典记录各字符的索引。如果重复出现,则索引值需要加上len(s)
        d = {}
        for i in range(len(s)):
            if s[i] not in d:
                d[s[i]] = i
            else:
                d[s[i]] += len(s)
        
        if len(s) and min(d.values()) < len(s) :
            return min(d.values())
        return -1

分享技术,乐享生活:我们的公众号计算机视觉这件小事每周推送“AI”系列资讯类文章,欢迎您的关注!

本文由博客一文多发平台 OpenWrite 发布!

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1820

    文章

    50325

    浏览量

    266952
  • 机器学习
    +关注

    关注

    67

    文章

    8565

    浏览量

    137224
  • 深度学习
    +关注

    关注

    73

    文章

    5608

    浏览量

    124631
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式春招笔试高频算法题(附解题思路)

    节点结构,再实现功能。 三、高频算法题3:字符串反转(基础必考) 字符串操作是嵌入式笔试的基础考点,字符串反转难度低、代码简洁,是必拿分的算法
    发表于 03-18 10:08

    求助 LabVIEW 字符串比较

    请教大神 ,用一个字符串和多个字符串比较程序应该怎么做。 比如:A字符串和B字符串组(B组字符串个数不定可以是
    发表于 03-02 17:24

    打开工程后工程的字体没有显示,如字符串,数字等控件不能预览显示字体?

    打开工程后工程的字体没有显示,如字符串,数字等控件不能预览显示字体?
    发表于 02-25 17:39

    字符串控件与静态字符串控件预览字符显示乱码,如何修改显示正常?

    字符串控件与静态字符串控件预览字符显示乱码,如何修改显示正常?
    发表于 01-20 17:17

    字符串,数字控件如何控制背景颜色和前景字体颜色?

    字符串,数字控件如何控制背景颜色和前景字体颜色?
    发表于 01-20 15:12

    Linux下怎么让中文字符串按照拼音排序?

    求教 Linux 下怎么让中文字符串按照拼音排序?
    发表于 01-06 07:40

    分析嵌入式软件代码的漏洞-代码注入

    printf的第一个参数将被编译为格式字符串。所以,如果str包含任何格式说明,它们就将被这样编译。 例如,如果str包含\'%d\',它会将printf参数列表的下
    发表于 12-22 12:53

    字符串关联数字变量如何使用?我们的地址都是16位数据,可以使用16位数字变量显示字符串吗?

    字符串关联数字变量如何使用?我们的地址都是16位数据,可以使用16位数字变量显示字符串吗?
    发表于 12-15 08:24

    飞凌嵌入式ElfBoard-标准IO接口之格式化输出

    :要操作的文件描述。format:表示C 字符串,包含了要被写入到fd的格式化数据。...:表示附加可变参数,根据不同的 format 字符串,函数可能需要
    发表于 11-11 08:43

    如何使用 NuMaker 板和 Mbed OS 上的连接字符串连接到 Azure IoT?

    使用 NuMaker 板和 Mbed OS 上的连接字符串连接到 Azure IoT
    发表于 09-04 07:46

    非对称密钥生成和转换规格详解

    算法基于 EdDSA 算法的数字签名算法,密钥长度为256位,使用 Edwards 曲线来实现,不能用于加解密,
    发表于 09-01 07:50

    labview如何生成字符串返回的dll

    labview如何生成dll,如下图,要求输入,类型是字符串,返回类型也是字符串
    发表于 08-28 23:20

    在Python字符串逆序有几种方式,代码是什么

    对于给定的字符串,逆序输出,这个任务对于python来说是种很简单的操作,毕竟强大的列表和字符串处理的
    的头像 发表于 08-28 14:44 1277次阅读

    SQL 通用数据类型

    如何与存储的数据进行交互。 下面的表格列出了 SQL 通用的数据类型: 数据类型 描述 CHARACTER(n) 字符/字符串。固定长度 n。 VARCHAR(n) 或 CHARACTER VARYING(n)
    的头像 发表于 08-18 09:46 856次阅读

    harmony-utils之StrUtil,字符串工具类

    harmony-utils之StrUtil,字符串工具类 harmony-utils 简介与说明 [harmony-utils] 款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类
    的头像 发表于 07-03 11:32 775次阅读