LeetCode初级算法--字符串02:字符串中的第一个唯一字符
一、引子
这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。
二、题目
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
1、思路
首先我们可以想到这道题需要的是一个不重复的字符,我们顺序找到第一个不重复的字符,把其索引存起来,返回最小的索引也就是第一个不重复的字符了。
注:使用count方法,会增加时间复杂度,所以我们用字典记录各字符的索引。如果重复出现,则索引值需要加上len(s),小于len(s)的那个索引就是我们求的值。
2、编程实现
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
分析嵌入式软件代码的漏洞-代码注入
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
在Python中字符串逆序有几种方式,代码是什么
对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的
SQL 通用数据类型
如何与存储的数据进行交互。 下面的表格列出了 SQL 中通用的数据类型: 数据类型 描述 CHARACTER(n) 字符/字符串。固定长度 n。 VARCHAR(n) 或 CHARACTER VARYING(n)
harmony-utils之StrUtil,字符串工具类
harmony-utils之StrUtil,字符串工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类
LeetCode初级算法-字符串02:字符串中的第一个唯一字符
评论