题目:输入是一个字符串,找出没有重复字符的最长子字符串的长度
示例:
“abcabcbb”最长子串(abc)长度为3
“bbbbbbb”最长子串(b)长度为1
“abdevbac”最长子串(bdev)长度4
//O(N^2)的时间复杂度
int max_unique_substring2(char * str)
{
int i,j;
int begin;
int maxlen = 0;
int hash[256];
int n = strlen(str);
for(i=0; i<n; ++i)
{
memset(hash,0,sizeof(hash));
hash[str[i]] = 1;
for(j=i+1; j<n; ++j)
{
if(hash[str[j]] == 0)
hash[str[j]] = 1;
else
break;
}
if(j-i > maxlen)
{
maxlen = j-i;
begin = i;
}
}
printf("%.*s\n", maxlen, &str[begin]);
return maxlen;
}