leetcode第三题

题目描述:

找出一串字符串中不含重复字母的最长字串

 解答:

 mounted() {
    let result = this.findLongestString("afahdkjuhaivs")
    console.log("result = " + result);
  },
  methods: {
    /*
    * 使用滑动窗口,将队列的左边的元素移出,一直维持这样的队列,找出队列出现最长的长度时候
    * */
    findLongestString(s) {
      //ES6中的set函数本身是一个构造函数
      let res = 0, left = 0, set = new Set();
      //遍历字符串
      for (let i = 0; i < s.length; i++) {
        left = Math.max(left, set[s[i]] || 0);
        set[s[i]] = i + 1;
        res = Math.max(res, i - left + 1);
      }
      return res;
    }

 

posted @ 2021-05-18 13:45  栗子米  阅读(43)  评论(0编辑  收藏  举报