【发布时间】:2021-01-23 08:32:50
【问题描述】:
函数的目的是找出最长且不重复的子串,所以我需要找出子串的起始位置和长度。我正在努力解决的问题是大 O 符号应该是 O(n)。因此我不能使用嵌套的 for 循环来检查每个字母是否重复。 我创建了一个这样的结构函数,但我不知道如何继续:
struct Answer {
int start;
int length;
};
Answer findsubstring(char *string){
Answer sub={0, 0}
for (int i = 0; i < strlen(string); i++) {
}
return (sub)
}
例如输入为HelloWorld,输出应为World,长度为5。
如果输入为abagkfleoKi,则输出为bagkfleoKi。长度为 10。
另外,如果两个字符串的长度相同,则选择后一个。
【问题讨论】:
-
"HelloW"不是包含重复的'l's 吗? -
抱歉,HelloWorld 的输出应该是 'orld'
-
为什么不
World? -
为什么第二种情况的输出不是
bagkfleoKi? -
我已经编辑了输出,因为它有太多错误
标签: c++