个人感觉最大的关注点在于跟谁比较,选择滑动节点之前的字符与之比较,当相同时求出与left之差就是所求了。
#include <stdio.h>
#include <string.h>
int main() {
char s[7] = "pwwkew";
int left = 0;
int right = 0;
int max = 0;
int i, j;
int len = strlen(s);
int havesamechar = 0;
for (i = 0; i < len; i++) {
for (j = left; j < right; j++) {
if (s[j] == s[right]) {
havesamechar = 1;
break;
}
}
if (havesamechar) {
left = j + 1;
havesamechar = 0;
}
right++;
max = max <= (right - left+1 ) ? (right - left+1) : max;
}
printf("%d", max);
}
第一次接触这种算法记录一下