求助一道编程题

给定一个字符串,找出不含有重复字符的最长子串的长度。

示例:

给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。

给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。

给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。

我的代码(我的输出为什么是-infinity,请问哪里错了,谢谢指教) /**  * @param {string} s  * @return {number}  */ var lengthOfLongestSubstring = function(s) {     var arr=s.split("");     var narr=[];     var ctarr=[];     var count=0;     for(i=0;i<arr.length;i++){        if(narr.indexOf(arr[i])==-1){  //字符串里第一次出现的就把它放到一个新数组里存放,并且长度+1;            count++;            if(count==arr.length){                return count; //考虑字符串一直没有重复的情况,输出长度就是字符串长度            }            narr.push(arr[i]); //没有重复的就放到新数组里;        }        else{            ctarr.push(count); //一旦有重复的,就把前面的计数停止,计数长度值放到另一个数组储存(最后用于比较),新数组和count都清空重置            count=1;            narr=[]; //从重复的字符处开始重新计数         narr.push(arr[i]);        }     return Math.max.apply(null,ctarr); //求由长度组成的数组里最大的长度     } };

#前端##笔试题目#
全部评论
var arr=s.split(“”) 两个引号直接不能有空格吧,要是有空格就是把字符串以空格为分割符拆串了
点赞 回复 分享
发布于 2018-05-21 10:42

相关推荐

不知道怎么取名字_:玩游戏都写到简历上了啊
投递BOSS直聘等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务