算法每日一题(python,2024.05.31)

news/2024/10/11 13:24:32/

题目来源(力扣. - 力扣(LeetCode),简单)

485a960be8904ccba6017c4d99d54284.png

解题思路:

二次遍历,第一次遍历用哈希表记录每个字母的出现次数,出现一次则将它的value值赋为True,将它的下标赋为key值,第二次时候则将它赋值为False。第二次遍历寻找第一个value值为True的字符,找到后返回它的key(即它的原下标),若不存在则返回-1

代码实现:

python">r=dict()
for c in s:if c in r:r[c]=Falseelse:r[c]=True
for i,ch in enumerate(s):if r[ch]:return i
return -1

总结: 

与次数相关,可以考虑哈希表的使用,寻找第一个不重复的字符,则再遍历一次哈希表即可

利用字典的key和value对应的关系,将是否出现一次的情况和它的下标绑定在一起,最后返回第一次出现的即可。


http://www.ppmy.cn/news/1465818.html

相关文章

[原创]C++ 11的thread_local线程局部变量与Lambda表达式配合使用, 却引发致命的, 难以发现的冲突.

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

5 分钟快速上手图形验证码,防止接口被恶意刷量!

5 分钟快速上手图形验证码,防止接口被恶意刷量! 大家好,我是程序员小白条,今天来给大家介绍一个快速实现图形验证码的优秀框架 AJ-Captcha。 需求分析 如果注册接口没有验证码这种类型的限制,很容易会被刷量&#x…

Hadoop+Spark大数据技术 第七次作业

第七次作业 1. 简述Spark SQL使用的数据抽象DataFrame与Dataset的区别。 DataFrame: 基于 Row 对象的二维表格结构,类似于关系型数据库中的表。 行和列都有明确的 Schema(模式),可以进行类型推断。 提供了丰富的操作接口&#xff…

用Python装饰器打造强大的日志系统

用Python装饰器打造强大的日志系统 日志记录是软件开发中不可或缺的一部分,它帮助开发者追踪程序的执行过程、调试错误和分析性能。Python提供了多种日志记录工具,但如何将日志记录功能优雅地集成到代码中,是一个值得探讨的问题。本文将介绍如…

项目的各个阶段如何编写标准的Git commit消息

标准提交消息格式 一个标准的提交消息应包括三部分:标题(summary)、正文(description)和脚注(footer)。 1. 标题(Summary) 简洁明了,不超过50个字符。使用…

Linux系统开放端口相关操作

使用系统命令检查主机是否运行了防火墙,可以使用如下命令: systemctl status firewalld如果防火墙服务正常运行,执行以下命令: firewall-cmd --zonepublic --permanent --add-port要开放的端口号/tcp (--permanent永…

第一周 数据结构与算法以及复杂度分析

数据结构与算法 算法定义 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 1.问题是明确的,包含清晰的输入和输出定义。 2.具有可行性,能够在有限步骤、时间和内存空间下完成。 3.…

生态融合促发展 YashanDB与丰图科技完成兼容性认证

近日,深圳计算科学研究院崖山数据库系统YashanDB V23与丰图科技智域城市数字孪生平台顺利完成兼容性互认证。经严格测试,双方产品完全兼容,稳定运行,充分满足企事业单位在高性能、高可用性、高稳定性及高可控性方面的核心需求&…