前端基础-应用5

8.18 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度

参考答案:

思路分析:

对字符串进行遍历,使用String.prototype.indexOf()实时获取遍历过程中的无重复子串并存放于str,并保存当前状态最长无重复子串的长度为res,当遍历结束时,res的值即为无重复字符的最长子串的长度。

代码示例:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var res = 0; // 用于存放当前最长无重复子串的长度
    var str = ""; // 用于存放无重复子串
    var len = s.length;
    for(var i = 0; i < len; i++) {
      var char = s.charAt(i);
      var index = str.indexOf(char);
      if(index === -1) {
        str += char;
        res = res < str.length ? str.length : res;
      } else {
        str = str.substr(index + 1) + char;
      }
    }
    return res; 
};

8.19 去掉字符串前后的空格

参考答案:

第五种方法在处理长字符串时效率最高

第一种:循环检查替换

//供使用者调用  
function trim(s){  
  return trimRight(trimLeft(s));  
}  
//去掉左边的空白  
function trimLeft(s){  
    if(s == null) {  
      return "";  
    }  
  var whitespace = new String(" \t\n\r");  
  var str = new String(s);  
  if (whitespace.indexOf(str.charAt(0)) != -1) {  
    var j=0, i = str.length;  
    while (j < i && whitespace.indexOf(str.charAt(j)) != -1){  
      j++;  
    }  
    str = str.substring(j, i);  
  }  
  return str;  
}  
//去掉右边的空白 www.2cto.com 
function trimRight(s){  
  if(s == null) return "";  
  var whitespace = new String(" \t\n\r");  
  var str = new String(s);  
  if (whitespace.indexOf(str.charAt(str.length-1)) != -1){  
    var i = str.length - 1;  
    while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){  
      i--;  
    }  
    str = str.substring(0, i+1);  
  }  
  return str;  
} 

第二种:正则替换

<SCRIPT LANGUAGE="JavaScript">  
String.prot

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端岗位面试真题宝典 文章被收录于专栏

本面试宝典均来自校招面试题目大数据进行的整理

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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