c_cpp 最长的公共子串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长的公共子串相关的知识,希望对你有一定的参考价值。
//https://www.geeksforgeeks.org/longest-common-substring-dp-29/
#include<iostream>
using namespace std;
int main() {
string s,t;
getline(cin,s);
getline(cin,t);
int n= s.length(), m= t.length(), res= INT_MIN;
int dp[n][m];
for (int i=0;i<n;i++) {
for (int j=0;j<m;j++) {
if (s[i]!= t[j])
dp[i][j]= 0;
else {
dp[i][j]= (i>0 && j>0)?(1+dp[i-1][j-1]):1;
res= max(res, dp[i][j]);
}
}
}
cout<< res;
}
//https://www.geeksforgeeks.org/longest-common-substring-dp-29/
#include<iostream>
using namespace std;
int main() {
string s,t;
getline(cin,s);
getline(cin,t);
int n= s.length(), m= t.length(), res= INT_MIN;
int dp[n+1][m+1];//dp[i][j] contains length of longest
// common suffix of s[0..i-1] and t[0..j-1]
for (int i=0;i<=n;i++) {
for (int j=0;j<=m;j++) {
if (i==0 || j==0)
dp[i][j]= 0;
else if (s[i-1]==t[j-1]) {
dp[i][j]= 1+dp[i-1][j-1];
res= max(res,dp[i][j]);
}
else
dp[i][j]=0;
}
}
cout<< res;
}
以上是关于c_cpp 最长的公共子串的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 最长的子串
c_cpp 最长的对称子串
寻找最长公共子串(高分)
最长公共子串
最长公共子串和最长公共子序列
最长连续公共子串最长公共子串(可以非连续)最长回文串(连续)最长回文串(可以不连续)最长递增数组的求解