无重复字符的最长子串(滑动窗口+双指针)

无重复字符的最长子串(滑动窗口+双指针)_第1张图片

class Solution {
     
public://滑动窗口法+双指针
	int lengthOfLongestSubstring(string s) {
     
		if (s.size() == 0)
			return 0;
		int left = 0,right=0;
		int maxlength = 1;
        //关键就是时刻要保证双指针区间内的字符串是无重复字符的

		//start
		right++;
        //每次while循坏都会加入一个新的s[right]
		while (right<=s.size()-1) {
     
			for (int temp_left=left; temp_left < right; temp_left++)
			{
     
				if (s[right] == s[temp_left]  )
				{
     
					left = temp_left + 1;
					break;
				}
					
			}
			maxlength = max(maxlength, right - left + 1);
			right++;
		}
		return maxlength;
	}
};

你可能感兴趣的:(无重复字符的最长子串(滑动窗口+双指针))