求助一道编程题
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例:
给定 "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); //求由长度组成的数组里最大的长度 } };
#前端##笔试题目#

SHEIN希音公司福利 276人发布