最长不重复的子字符串

给定一个字符串,找到最长的子串,要求该子串中没有重复的字符。

例如:

字符串abcabcbb的不含重复字符的 最长 子串为abc,长度为 33。

而bbbbbb的不含重复字符的 最长 子串为b,长度为 11。

输入格式
输入包含多行,每一行对应一个长度不超过 100100 的输出,直到遇到结束符为止。每行依次输入字符串s。

输出格式
输出不含重复字符的 最长 子串的长度。

样例输入
hchzvfrkmlnozjk
样例输出
11
 

#include<stdio.h>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
    char a[123];
    int b[123];
    while(scanf("%s",a)!=EOF)
    {
        int d=strlen(a);
        int i,j;
        int max=1;
        for(i=0;i<d;i++)
        {
            int z=0;
            memset(b,0,sizeof(b));
            for(j=i;j<=d;j++)
            {
                int x=a[j];
                b[x]++;
                if(max<z)
                    max=z;
                if(b[x]>1)
                    break;
                z++;
            }
        }
        cout<<max<<endl;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40099908/article/details/81610699