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 发布!
审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
人工智能
+关注
关注
1813文章
49793浏览量
262017 -
机器学习
+关注
关注
66文章
8542浏览量
136326 -
深度学习
+关注
关注
73文章
5591浏览量
123997
发布评论请先 登录
相关推荐
热点推荐
字符串关联数字变量如何使用?我们的地址都是16位数据,可以使用16位数字变量显示字符串吗?
字符串关联数字变量如何使用?我们的地址都是16位数据,可以使用16位数字变量显示字符串吗?
发表于 12-15 08:24
飞凌嵌入式ElfBoard-标准IO接口之格式化输出
:要操作的文件描述符。format:表示C 字符串,包含了要被写入到fd中的格式化数据。...:表示附加可变参数,根据不同的 format 字符串,函数可能需要
发表于 11-11 08:43
在Python中字符串逆序有几种方式,代码是什么
对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的
harmony-utils之StrUtil,字符串工具类
harmony-utils之StrUtil,字符串工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类
STM32C031C6使用的是UART2通讯,通过printf()函数发送字符串时,汉字错码怎么解决?
使用的是UART2通讯,通过printf()函数发送字符串时,汉字错码(见下图),应该是KEIL哪里没有设置好的问题。
启用了UART2的中断接收,可以接收到串口调试助手的数据,但是缓存区的指针没有归零,下次接收时缓存区中的内容接续(如下图所示),不知道用什么命令来清除
发表于 03-07 12:30
请问如何用Verilog实现将ascaii码数值字符串转换成定点数?
我需要接收一个ascaii码字符串,内容是12位有效数字的数值,带小数。我不知道怎么把小数部分转换成定点数。
发表于 01-23 21:57
TL16C554发送一串数据,在回环测试中总读不出最后一字节数据,为什么?
用TL16C554已经实现了发送数据没有问题
接收数据出现以下问题
发送一串数据,在回环测试中总读不出最后一字节数据
发送单个字符的时候,LSR0显示有数据,读出的永远是0x00
发表于 01-22 06:57
AN-645:HD44780字符LCD与MicroConverter的接口(uC014)
电子发烧友网站提供《AN-645:HD44780字符LCD与MicroConverter的接口(uC014).pdf》资料免费下载
发表于 01-14 16:22
•0次下载
字符串在数据库中的存储方式
数据库是现代信息技术中存储和管理数据的核心组件。字符串作为最常见的数据类型之一,在数据库中的存储方式对其性能和可扩展性有着重要影响。 数据类型 固定长度
字符串在编程中的应用实例
字符串在编程中有着广泛的应用,它们被用于表示文本数据、处理用户输入、构建动态内容等。以下是一些字符串在编程中的应用实例: 1. 用户输入与输出 用户输入 :程序通常需要从用户那里获取输
字符串与字符数组的区别
大多数编程语言中是一个高级数据结构,通常由语言的运行时环境直接支持。字符串通常以连续的字符序列存储,但它们不仅仅是字符的简单集合。
字符串反转的实现方式
函数自身调用来解决问题的方法。在字符串反转中,递归可以用来逐个字符地构建反转后的字符串。 实现步骤 基本情况 :如果字符串为空或只有
养成良好的编程习惯|堆内存初值不一定是0
;} 代码很简单,使用 malloc 申请一段堆内存,假设内存空间足够大。 通过 getchar 配合 while 循环,从标准输入获取一个字符串,直到遇到换行符结束。 最后就是把获取的字符串

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