您的位置:首页 > 其它

LeetCode每日一题 010 无重复字符的最长子串

2019-03-08 00:37 232 查看

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

1、解题思路

1)顺序遍历,依次比较每个不重复子串长度,即首尾元素相同时子串长度;

2)使用哈希表辅助判断元素是否重复

2、边界用例

 

3、有效题解

[code]int lengthOfLongestSubstring(char* s)
{
if (NULL == s || strlen(s) <= 0)
{
return 0;
}

int table[256] = {-1};
memset(table, -1, sizeof(int) * 256);
int maxLen = 0;
int start = -1;

int i;
int p1 = -1;
int p2 = -1;
for (i = 0; i < strlen(s); i++)
{
if (start < table[s[i]])
{
start = table[s[i]];
}
table[s[i]] = i;

if (maxLen <(i - start))
{
maxLen = i - start;
p1 = start;
p2 = i;
}
}

return maxLen;
}

4、复杂度分析

 

5、小结

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: