[英]Find Longest common Substring
我需要从两个 DNA 字符串中找到最长的常见 substring。 我有第一个字符串“CGATAC”,第二个:“GACAGTC”使用我的代码,我的结果是:“GAC”,但你可以得到更长的 substring,我的意思是“GATC”。 我需要改变什么来获得更长的 substring?
int k = 0;
for (int i = 0; i < substring1.length(); i++) {
char znak = substring1[i];
for (int j = k; j < substring2.length(); j++) {
char znak2 = substring2[j];
if (znak == znak2) {
end_substring += znak;
k = j;
break;
}
}
}
cout << end_substring;
你可以通过一些基本的想法来改进你的代码。 我知道您想要最长的字符串之一,而不是全部,然后您可以将最长字符串的长度存储到程序中的每个时刻,并将此长度用于至少长度 + 1 的搜索字符串。 但是 bes 解决方案是使用动态编程,您可以在此处阅读此解决方案: https://www.geeksforgeeks.org/longest-common-substring-dp-29/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.