每天一道leetcode387-字符串中第一个唯一的字符

辣条走起,每月的leetcode刷题99元奖励就靠大家啦~

前言

2018.12.1号打卡

昨天的题解

题目

每天一道leetcode387-字符串中第一个唯一的字符

题目详述

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = "leetcode"

s = "loveleetcode",

注意事项:您可以假定该字符串只包含小写字母。

题目详解

思路

  • 由于只有26个小写字母,可以把用一个数组表示26个字母,数组长度26,第0位代表a,第1位代表b,….(这里利用ASC码进行转换)

  • 首先设置一个index=1,然后遍历字符串s,如果数组中比如对于字符串中a来说,也就是数组下标为0,array[0]如果字符a第一次出现,那么array[0] = index;然后index++;每第一次出现就把对应的数组下标赋值为index;

  • 如果已经出现了,那么array[i]必然是一个不等于0的大于0的数,那么就把array[i] = -1;

  • 一趟循环以后,遍历array数组,找到不等于-1的(出现两次及以上)不等于0的

代码

 
 

结束语

2018.12.1号打卡

作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值