第一个只出现一次的字符

字符串

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
示例:
输入:
"google"
输出:
4

分析:

看到题目,我们肯定首先想到的是遍历字符串用for(let i of str) 进行遍历之后拿到的是一个个的字母然后想如果有两个或者多个一样的,那这两个字母的下标肯定 不一样,所以我们可以遍历之后再利用字符串的indexOf方法和lastIndexOf方法,对相等的字母的下标进行判断,代码如下:
function FirstNotRepeatingChar(str)
{ if(str.leng < 0 || str.length >10000) return;
    for(let i of str){
                if (str.indexOf(i) === str.lastIndexOf(i)) {
                   return str.indexOf(i)
                }
            }
        return -1
}
或者我们还可以通过let map = new Map()进行操作,如果map里边没有这个字母那我们可以map.set进行添加,如果下一次还出现了,那么把这个字母的值+1,最后可以根据值来进行判断,代价可以试一试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值