给定一个字符串,找出不含有重复字符的最长子串的长度。
示例:
给定 "abcabcbb"
,没有重复字符的最长子串是 "abc"
,那么长度就是3。
给定 "bbbbb"
,最长的子串就是 "b"
,长度是1。
给定 "pwwkew"
,最长子串是 "wke"
,长度是3。请注意答案必须是一个子串,"pwke"
是 子序列 而不是子串。
int lengthOfLongestSubstring(char* s) {
int ch_in[100] = {0};
int i,j,max,temp = 0;
int length = strlen(s);
if (length == 0)
return 0;
ch_in[s[0] - ' '] = 1;
max = temp = 1;
for(i = 0;i <= length - max; i++) {
ch_in[s[i] - ' '] = 1;
for (j = i+1;j < length; j++) {
if (ch_in[s[j] - ' '] == 0) {
ch_in[s[j] - ' '] = 1;
temp++;
if (temp > max)
max = temp;
}
else {
memset(ch_in, 0, sizeof(ch_in));
temp = 1;
break;
}
}
}
return max;
}