不包含重复字符的最长子串长度
描述
经过一段时间的学习,小鲁对字符串处理有了新的认识。他发现要用数学模型判别两篇文章是否有相似度,其中一个很有趣的指标是:一个字符串中不含有重复字符的最长子串的长度。
一串串的字符串统计何等麻烦,但是对学会编程的小鲁,这不是一个太困难的问题:
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
输入
输入一个字符串s(长度不超过1000)。
输出
不含有重复字符的最长子串的长度。
输入样例 1
abrownfoxjumpsoveralazydoginxiamenuniversity
输出样例 1
12
输入样例 2
xxxxxxxxxx
输出样例 2
1
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char s[10000];
gets(s);
int len=strlen(s);
int left=0;
int right=2,max=1;
while(left<len&&right<len)
{
while(left<right&&right<len)
{
int sum=0;
for(int j=left;j<right-1;j++)
{
for(int i=j+1;i<right;i++)
{ if(s[j]!=s[i]) {continue;}
else {sum=1;break;}
}
if(sum==1) break;
}
if(sum==0){ if((right-left)>max) max=right-left; right++;}
else left++;
}
right++;
}
printf("%d",max);
return 0;
}