[英]Search the longest substring in two strings
任务是:找到两行中找到的最长子串。 问题的特点是这些行很长(文件的内容,即每个400,000个字符),以及由短4个字符组成的字母表。
字符串可以有不同的长度。
我发明并实现了以下算法:
要获取第一个文件的内容并写入字符串str1,请删除换行符
要获取第二个文件的内容并写入字符串str2,请删除换行符
我们将所有子串都考虑为字符串str1,从最长到最短。 为此,在每次迭代时定义循环while(i> 0),在主内容减少字符串长度之后。 所以长度为1的字符串。
在while循环内:长度为N的所有子字符串仅在起始位置不同。
让我们有一个长度为N的字符串:
它是一个长度为N的子字符串,包含从0开始的字符串。
有两个长度为N-1的子串在位置0和1之间开始
在它中有三个长度为N-2的子串,它从位置0,1和2开始
...
for循环中计数的起始位置(z = 0; z <= gi; z ++),其中函数getSubstring接收子字符串。 然后使用字符串str2的子字符串运行标准函数strstr
但这个算法是否足够长。 有没有办法让它更快?
PS用C写
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.