给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

//滑动窗口
int lengthOfLongestSubstring(char * s)
{
    
    int len ,i,r,l,max;
    
    r = l =max = 0;

    //r-->右 l-->左;
    while(s[r]) {//当右指针指向的字符存在时,即没有结束滑动
        for(i = l; i< r;i++) {//在左右指针中间遍历,从左指针处开始
            if(s[i] == s[r])//当存在与右指针相同的字符
            {
                l = i+1;//则左指针跳过该重复字符,指向该字符的下一位
                break;//跳出循环
            }
            
        }
        max = max < (r - l +1) ? r-l+1:max;//记录最长长度
        r++;
    }
    return max;
}

 

posted @ 2023-10-24 21:09  44556677  阅读(9)  评论(0)    收藏  举报