Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >02-leetcode: explore-strings-34 字符串中的第一个唯一字符

02-leetcode: explore-strings-34 字符串中的第一个唯一字符

作者头像
用户7685359
发布于 2020-08-24 08:24:56
发布于 2020-08-24 08:24:56
28100
代码可运行
举报
文章被收录于专栏:FluentStudyFluentStudy
运行总次数:0
代码可运行

leetcode explore 字符串类第三题:字符串中的第一个唯一字符。

题目分析

这里把题目贴出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode"
return 0.

s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.

题意拆解:

1、输入:字符串 2、输出:整数,这个整数的含义是字符串中第一个不重复字符的下标,如果不存在,返回-1 3、注意:我们假定输入的字符串中中包含小写的字母(从注意事事项中,我们可以看到平常面试中,我们应该考虑到的细节问题

参考答案

对于可迭代对象判断重复,下意识要想到这几个点:

1、set() 和 dict() 可用于去重 2、dict() 用于判断 key 是否存在效率很高

只要想到上面两点,加上题目对空间和时间复杂度要求也不高,解题就很容易了,参考答案如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        if not s:
            return -1

        d = {}
        for i in range(len(s)):
            if d.get(s[i]):
                continue
            if s.count(s[i]) > 1:
                d[s[i]] = 1
                continue
            return i

        return -1

总结

题目本身并不难,但是我们看到每次题目都会有一些假设条件,这些条件一般是用来规范输入和输出的。但是在实际面试中,这些可能反而会成为面试官的考试点,他并不会给出这些假设条件,如果你能主动去询问,会给你加分。

通常要注意的点:

1、数值问题:数值的范围,是否会超限。一般 Python 数值是不会超限,但如果是其他语言需要注意,同时也可以像面试官确认数值范围。

2、字符串问题:是否区分大小写?是否包括其他字符?等等。

注:点击阅读原文可进入题目。

让我知道你在看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FluentStudy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【leetcode刷题】T39-字符串中的第一个唯一字符
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
木又AI帮
2019/07/17
4080
LeetCode 387: 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
爱写bug
2019/10/30
5550
Swift 字符串中的第一个唯一字符 - LeetCode
1、将字符串转为数组 2、循环字符串数组,将字符作为键,索引作为值存入字典 3、存入字典时先判断是否已经存在,已存在则将值置位-1 4、循环字典,拿到所有的值 5、将值排序(因为都是整数),最小值即为所求的索引
韦弦zhy
2018/09/11
1K0
Swift 字符串中的第一个唯一字符 - LeetCode
LeetCode 387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
freesan44
2020/06/08
2820
leetcode 每日一题:387. 字符串中的第一个唯一字符
https://leetcode-cn.com/problems/first-unique-character-in-a-string/
用户7685359
2021/01/08
3440
LeetCode 387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。 如果不存在,则返回 -1。
Michael阿明
2022/11/26
2640
LeetCode 387. 字符串中的第一个唯一字符(哈希表)
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例:
SakuraTears
2022/01/13
3940
LeetCode 进阶之路 - 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2 提示:你可以假定该字符串只包含小写字母。 public class FirstUniqueCharacterinaString { public static int firstUniqChar(String s) { if (s == null || s.length() == 0)
Li_XiaoJin
2022/06/10
2220
漫画:字符串中的第一个唯一字符
今天大多公司都开工了!疫情之下,应该是在家里办公吧~反正出不了家门,想偷懒的话就刷道算法题学习学习吧。
程序员小浩
2020/03/31
3870
387 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 (s只包含小写字母)
木瓜煲鸡脚
2021/01/18
6430
387 字符串中的第一个唯一字符
LeetCode笔记:387. First Unique Character in a String
最近连续几题都是关于字符串中字母的题目,也都强调了可以假设全为小写字母,基本养成了看到这种东西就想到要用26位数字数组记录的条件反射,这确实是一个很好的方法,实现出来也很快。这里的目的是找出第一个不重复的字母,那么首先肯定要遍历查看每个字母是否重复,所以要拿26位数字数组来记录每个字母出现的次数。因为要找出第一个不重复的,所以还要一个26位数字数组来记录每个数组第一次出现的位置。最后查看有哪些字母只出现了一次并且找到其中出现位置最早的那个字母就是了。
Cloudox
2021/11/23
3020
leetcode-387-First Unique Character in a String
题目描述: Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1. Examples: s = "leetcode" return 0. s = "loveleetcode", return 2. Note: You may assume the string contain only lowercase letters. 要完成的
chenjx85
2018/05/21
6690
LeetCode95|字符串中的第一个唯一字符
本题使用键值对集合LinkedHashMap进行解决,使用LinkedHashMap的好处是因为链表的有序性,这样就可以找到第一个不重复的字符了,使用HashMap的就未必可以达到这个要求,懂得合理使用数据结构去解决问题也是一种方式把吧
码农王同学
2020/10/10
4420
LeetCode95|字符串中的第一个唯一字符
字符串中的第一个唯一字符(C++)
给定一个字符串 s,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1。
GeekLiHua
2025/01/21
670
字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。
WindRunnerMax
2020/12/28
5010
387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2 提示:该字符串只包含小写字母。 class Solution { public int firstUniqChar(String s) { /** Hash表存储元素,以及他出现的个数 */ Map<Character,Integer>
编程张无忌
2021/06/01
3490
String - 58. Length of Last Word
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
ppxai
2020/09/23
3350
leecode刷题(13) -- 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
希希里之海
2019/02/15
6900
LeetCode387 First Unique Character in a String
Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
用户1665735
2019/02/19
3160
【一天一大 lee】字符串中的第一个唯一字符 (难度:简单) - Day20201223
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
前端小书童
2021/01/05
2390
推荐阅读
相关推荐
【leetcode刷题】T39-字符串中的第一个唯一字符
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验