# 中级算法 字符串

# 无重复字符的最长字串

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

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
  if (s.length === 0) return 0;
  const map = {};
  let max = 0;
  for(let left = 0, right = 0; right < s.length; right++){
    const char = s.charAt(right);
    if (map.hasOwnProperty(char)) {
      left = Math.max(left, (map[char] + 1));
    }
    map[char] = right;
    max = Math.max(max, right - left + 1);
  }
  return max;
};

# 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {

};

# 递增的三元子序列

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var increasingTriplet = function(nums) {

};