问题标题: 酷町堂:4523 无重复的最长子串

0
0
已解决
潘登
潘登
高级天翼
高级天翼

题目链接: 酷町堂:4523

4523   无重复的最长子串

经验值:1600 时间限制:1000毫秒 内存限制:128MB

题目描述 Description

输入一个字符串s,请你找到s中的一个无重复字符的最长子串b,输出它的长度。

输入描述 Input Description

一行,一个字符串s

输出描述 Output Description

一行,一个整数,表示s无重复字符出现的最长子串的长度

样例输入 Sample Input

【样例输入1】 aaaabbcdeeeefffdwdd 【样例输入2】 abcda

样例输出 Sample Output

【样例输出1】 4 【样例输出2】 4

数据范围及提示 Data Size & Hint

字符串长度不超过1,000,000,字符串中字符的ASCII码值不超过128。

#include<bits/stdc++.h>
using namespace std;
long long a[1000000],mx;
int main()
{
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++){
        long long cnt=0,k=0;
        memset(a,0,sizeof(a));
        for(int j=i;j<s.size();j++){
            if(a[s[j]]==0){
                cnt++;
                a[s[j]]++;
            }
            else{
                mx=max(cnt,mx);
                break;
            }
        }
    }
    cout<<mx; 
    return 0;
}

 


0
已采纳
袁宇泽
袁宇泽
高级守护
高级守护

要用桶和滑动窗口

0
0
0
0
我要回答