给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
示例 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版权协议,转载请附上原文出处链接和本声明。