LeetCode:无重复字符的最长子串(C语言版)
Posted 想考北航的小刺猬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:无重复字符的最长子串(C语言版)相关的知识,希望对你有一定的参考价值。
无重复字符的最长子串
效率不高,但比较容易想到,看过一些滑动窗口的思想,自己的就想了一下,用两个指针设置窗口,用另一个指针cur在窗口中遍历,寻找重复,未找到就直接将新的字符加入,否则就更改窗口大小,将起始指针重新设定在窗口内部重复位置的前一个位置,重复这一过程,直到字符串末尾。
比较好的我看到是用C++写的:滑动窗口加哈希表。有一些用C写的代码很简短,大概十四行,技术有限,看不太懂,所以我就没仔细看那个。最后希望对大家有所帮助。
int lengthOfLongestSubstring(char * s) {
char *start = s, *end = s, *cur = NULL;
int len = 0;
while (*end != '\\0') {
cur = start;
while (cur != end) {
if (*cur == *end) {
start = cur + 1;
break;
}
else cur++;
}
if (len < strlen(start) - strlen(end) + 1)
len = strlen(start) - strlen(end) + 1;
end++;
}
return len;
}```
以上是关于LeetCode:无重复字符的最长子串(C语言版)的主要内容,如果未能解决你的问题,请参考以下文章
Python版[leetcode]3. 无重复字符的最长子串(难度中等)
leetcode-003无重复字符的最长子串--python
leetcode-003无重复字符的最长子串--python