我们提供安全,免费的手游软件下载!
在解读本文之前,建议先了解“动态规划方法论”,相关内容可以在之前的文章中找到。
本文将讲解与LeetCode718.最长重复子数组相同的题目,阅读完本文后可以尝试挑战这道题。
力扣链接
给定两个字符串,输出它们最长公共子串的长度。
ABACCB
AACCAB
3
最长公共子串是ACC,其长度为3。
f[i][j]=f[i-1][j-1]+1
(
a[i]==b[j]
)
f[i][j]=0
(
a[i]!=b[j]
)
f[0][j]=0
f[i][0]=0
#include
#include
using namespace std;
char a[200]="BCCABCCB";
char b[200]="AACCAB";
int f[201][201];
int main(){
int ans=0;
for(int i=1; i<=strlen(a); i++){
for(int j=1; j<=strlen(b); j++){
if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1]+1;
ans=max(ans,f[i][j]);
}
}
printf("ans=%d\n",ans);
return 0;
}
热门资讯