当前位置:网站首页>剑指 Offer II 016. 不含重复字符的最长子字符串-滑动窗口

剑指 Offer II 016. 不含重复字符的最长子字符串-滑动窗口

2022-06-12 08:56:00 Mr Gao

剑指 Offer II 016. 不含重复字符的最长子字符串

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

示例 1:

输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子字符串是 “abc”,所以其长度为 3。

示例 2:

输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子字符串是 “b”,所以其长度为 1。

示例 3:

输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

示例 4:

输入: s = “”
输出: 0

解题代码如下:

int lengthOfLongestSubstring(char * s){
    
    int r[128];
    int i=0;
  
   
    if(strlen(s)==0){
    
          return 0;
    }
    for(i=0;i<128;i++){
    
        r[i]=0;
    }
    int max=0;

    int left=0,right=0;
    while(s[right]!='\0'){
    
          printf("%d",left);
        if(r[s[right]]==0){
    
          
            r[s[right]]=1;
            if(right-left>max){
    
                max=right-left;
            }
              right++;
        }
        else{
    
            while(s[left]!=s[right]&&left<=right){
    
                  printf("%d",left);
                   r[s[left]]=0;
                  left++;
            }
              r[s[left]]=0;
            left++;
           

        }

    }
    return max+1;

}
原网站

版权声明
本文为[Mr Gao]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43327597/article/details/125240612