No.3 Longest Substring without Repeating Characters
原题:
Given a string, find the length of the longest substring without repeating characters.
意思: 给定一个字符串,找出不含有重复字符的最长子串的长度。
int lengthOfLongestSubstring(char* s) {
int offset[128];
//ASCII码128个,字符集
int len = 0;
int max_len = 0;
int index = 0;
//索引
//初始化数组
memset(offset,0xff,sizeof(offset));
//此时数组内存放的值均为-1
while(*s != '\0')
{
//该字符没有出现过
if(offset[*s] == -1)
{
len++;
}
else //该字符出现过
{
if(index - offset[*s] >len)
{
len++;
}
else
{
len = index - offset[*s];
}
}
if(len > max_len)
max_len = len;
offset[*s++] = index++ ;
}
return max_len;
}