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

搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法、机器学习干货

csdn:https://blog.csdn.net/baidu_31657889/

csdn:https://blog.csdn.net/abcgkj/

github:https://github.com/aimi-cn/AILearners

一、引子

这是由LeetCode官方推出的的经典面试题目清单~

这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。

查看完整的剑指Offer算法题解析请点击github链接:

github地址

二、题目

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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

AIMI-CN AI学习交流群【1015286623】 获取更多AI资料

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

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

最新文章

  1. psoc学习
  2. C语言第六次作业
  3. What is SSL and what are Certificates?
  4. Eclipse
  5. AC日记——刺激 codevs 1958
  6. Android Studio-目录结构
  7. linux下如何查看chm文件
  8. python学习笔记:文件操作和集合(转)
  9. 数据库知识整理&lt;一&gt;
  10. D3 &amp; Data Visualization in Ext JS
  11. nginx php-cgi php
  12. phpmyadmin #2003 无法登录 MySQL服务器的解决方法
  13. HDU 5486 Difference of Clustering 图论
  14. 正则表达式中的\n
  15. 【CSS】Intermediate3:Shorthand Properties
  16. 关于input标签的需要注意的几个小问题
  17. winform代码:关联窗体数据更新,删除dataGridview中选中的一行或多行
  18. Node.js系列文章:如何进行代码调试
  19. .NET Core Community 第三个千星项目诞生:爬虫 DotnetSpider
  20. nagios系列(四)之nagios主动方式监控tcp常用的80/3306等端口监控web/syncd/mysql及url服务

热门文章

  1. [LeetCode] 207. Course Schedule 课程安排
  2. [LeetCode] 377. Combination Sum IV 组合之和 IV
  3. 【转帖】两年Flink迁移之路:从standalone到on yarn,处理能力提升五倍
  4. [转帖]FastDFS图片服务器单机安装步骤
  5. Find the median(线段树+离散化)(2019牛客暑期多校训练营(第七场))
  6. REST Framework接口规范
  7. xxx商城之架构和功能简述
  8. Vasya and Shifts CodeForces - 832E (高斯消元)
  9. 玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务
  10. font-svg