LeetCode:8.无重复字符的最长字串
1.无重复字符的最长字串
这道题可以通过滑动窗口的思想来解决,通过left和right指向字符串的开头,right++来统计每一个字符出现的次数,如果大于1了,就说明当前的窗口中有重复的字符,我们将left所指向的字符的个数减1,同时left++,在这里我们可以使用一个定长数组来模拟哈希表,这样就可以将空间优化到O(1)的程度
class Solution {
public:int lengthOfLongestSubstring(string s) {int hash[128] = { 0 };int maxlen = 0, n = s.size();for(int left = 0, right = 0; right < n; right++){hash[s[right]]++;while(hash[s[right]] > 1){hash[s[left]]--;left++;}maxlen = max(maxlen, right - left + 1);}return maxlen;}
};