美文网首页剑指offer刷题
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中

在一个字符串(1<=字符串长度<=10000,全部由字母组成)中

作者: 大脸猫_2e21 | 来源:发表于2017-12-18 12:38 被阅读0次

这道题有两种解法,一种是创建哈希表,另一种是直接利用JS的indexOf方法

  • 创建哈希表
function FirstNotRepeatingChar(str)
{
    var table={}
            for(var i=0;i<str.length;i++){
                //创建哈希表
                if(!table[str[i]]){
                    table[str[i]]=1
                }
                else{
                    table[str[i]]+=1
                }
            }
             //找到再哈希表中存在次数为1的元素  利用string的indexOf()方法找到并返回
            for(key in table){
                if(table[key]===1){
                    return(str.indexOf(key)) 
                }
            }
    return -1
}
  • 直接利用indexOf方法
function FirstNotRepeatingChar(str)
{
for(var i=0;i<str.length;i++){
    //JS中indexOf()方法第一个参数是要查找的元素,第二个参数是要查找的起始位置     if((str.indexOf(str[i],i+1)===-1)&&str.indexOf(str[i])===i){
                    return i
                }
            
            }
            return -1   
}

相关文章

网友评论

    本文标题:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中

    本文链接:https://www.haomeiwen.com/subject/piapwxtx.html