AcWing 897. 最长公共子序列-(JAVA)
原题链接
简单
作者:
鼠鼠我
,
2021-02-19 22:41:00
,
所有人可见
,
阅读 234
package Acwing算法练习.第五章dp;
//f[i][j]表示集合所有在[1...i]中出现过,且在[1...j]中出现过的子序列
//f[i-1][j]表示在[1...i-1]中出现过,并且也在[1...j]出现过的最大的子序列
//f[i][j-1]表示在[1...i]中出现过,并且也在[1...j-1]出现过的最大的子序列
import java.util.Scanner;
public class 最长公共子序列 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
String A = " "+sc.next();
String B = " "+sc.next();
int f[][] = new int[n+1][m+1];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
f[i][j] = Math.max(f[i-1][j],f[i][j-1]);
if(A.charAt(i)==B.charAt(j))
f[i][j] = Math.max(f[i][j],f[i-1][j-1]+1);
}
}
System.out.println(f[n][m]);
}
}