欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode-3-无重复字符的最长字串

程序员文章站 2022-03-06 08:25:53
...

题目链接https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

LeetCode-3-无重复字符的最长字串
LeetCode-3-无重复字符的最长字串

方法

1:设置一个滑动窗口 start-end
2:检查字符是否在哈希表中,若在,让start的值为该字符的下一个字符下标
3:不论字符是否在哈希表中,都将字符放入哈希表,更新end的值
4:记录当前子串长度,与result相比,result保持当前已发现最大字串的长度

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
       int start=0,end=0; //滑动窗口
       int Newstart=0;
       int result=0;
       unordered_map<char,int>HashTable;
       unordered_map<char,int>::iterator It_HashTable;
       for(int i=0;i<s.size();++i)
       {
           It_HashTable=HashTable.find(s[i]);
           if(It_HashTable!=HashTable.end())
           {
               Newstart=It_HashTable->second+1;
               start=max(start,Newstart);
           }
           HashTable[s[i]]=i;
           ++end;
           if(end-start>result)
           {
               result=end-start;
           }
       }
       return result;
    }
};
相关标签: 力扣题目总结