#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
const char* str = "abcbecd";
const int n = strlen(str);
int dp[256], last[256];
for (int i = 0; i < 256; ++i)
last[i] = n;
dp[n] = n;
//用dp[i]表示以第i个字符开始的最长不重复子串的右端点位置。
//用last[x]表示字符x最近一次的出现位置。
for (int i = n - 1; i >= 0; --i)
{
dp[i] = min(dp[i+1], last[str[i]] - 1);
last[str[i]] = i;
}
int ans = -1;
for (int i = 0; i < n; ++i)
if (dp[i] - i > ans)
ans = dp[i] - i;
printf("%d/n", ans + 1);
getchar();
return 0;
}