如何生成无重复字符最长子串,请用c++语言生成代码
时间: 2024-05-13 07:13:48 浏览: 163
没有重复字符最长子串
以下是用C语言生成无重复字符最长子串的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, max_len = 0, start = 0, end = 0, i, j;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
int visited[256] = {0}; // 用来记录字符是否已经出现过
for (i = 0; i < len; i++) {
memset(visited, 0, sizeof(visited)); // 每次循环前清空visited数组
for (j = i; j < len; j++) {
if (visited[str[j]]) {
break; // 如果字符已经出现过,直接退出内层循环
} else {
visited[str[j]] = 1; // 标记字符已经出现过
if (j - i + 1 > max_len) {
max_len = j - i + 1;
start = i;
end = j;
}
}
}
}
printf("最长无重复字符子串为:");
for (i = start; i <= end; i++) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
如果您有其他问题,请继续提问。
阅读全文