HstarDoc icon indicating copy to clipboard operation
HstarDoc copied to clipboard

最长不重复子串算法-初版

Open hstarorg opened this issue 7 years ago • 0 comments

function lengthOfLongestSubstring(text) {
  function hasRepeatChar(str) {
    var strArr = str.split('');
    var obj = {};
    strArr.forEach(x => (obj[x] = true));
    return strArr.length != Object.keys(obj).length;
  }

  var longStr = '';
  var len = text.length;
  var tempStr = '';
  for (var i = 0; i < len - longStr.length; i++) {
    tempStr = text[i];
    for (var j = i + 1; j < len; j++) {
      if (hasRepeatChar(tempStr + text[j])) {
        if (longStr.length < tempStr.length) {
          longStr = tempStr;
        }
        break;
      } else {
        tempStr += text[j];
      }
    }
    if (!hasRepeatChar(tempStr)) {
      if (longStr.length < tempStr.length) {
        longStr = tempStr;
      }
    }
  }
  // console.log(longStr);
  return longStr.length;
}
var len;
len = lengthOfLongestSubstring('abcdefghijklmn');
console.log(len, len === 14);
len = lengthOfLongestSubstring('cbca');
console.log(len, len === 3);
len = lengthOfLongestSubstring('c');
console.log(len, len === 1);

hstarorg avatar Jul 19 '18 14:07 hstarorg