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

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

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

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

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

请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。 示例 4: 输入: s = “” 输出: 0

#include<stdio.h>
#include<string.h>
int lengthoflong(char *s);
int main(){
    char s[100]="abcabcabc";
    int n=lengthoflong(s);
    printf("%d",n);
    return 0;
}
int lengthoflong(char *s){
    char a[100]="\0";
    int counts=0,i=0,j,length1,length2,head=0,flag;
    length1=strlen(s);
    while(i<length1){
        length2=0;
        flag=1;
        memset(a,'\0',sizeof(a));
        for(i=head;i<length1;i++){
            for(j=0;j<length2;j++){
                if(a[j]==s[i]){
                    head=head+j+1;
                    flag=0;
                    break;
                }
            }
        if(flag==0){
            break;
        }
        a[length2++]=s[i];
        }
        if(length2>counts)
            counts=length2;
    }
}

在这里插入图片描述


版权声明:本文为weixin_46686232原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。