- 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
评论区看到的暴力解法,记录一下自己的理解思路。
string s = "pwwkew";
int size,i=0,j,k,max=0;
size = s.size();
for(j = 0;j<size;j++){
for(k = i;k<j;k++){
if(s[k]==s[j]){
i = k+1;
break;
}
}
if(j-i+1 > max)
max = j-i+1;
}
思路其实跟滑动窗口一样,外层的for循环作为窗口右侧移动。
遍历窗口内的所有值,发现与窗口最右侧一样的值就抛弃最右侧以前的所有数,并且将窗口起始点放到当前最右侧的位置,然后继续移动窗口最右侧,每移动一次就需要进入一次里层for循环遍历窗口起始点到最右侧的值。