原题链接
扩展题目一------求一个字符串的子序列中与另一个字符串相等的个数
题目描述
给定两个字符串str1和str2,输出连个字符串的最长公共子序列。
如过最长公共子序列为空,则输出-1。
输入描述
输出包括两行,第一行代表字符串str1,第二行代表str2。
(1≤length(str1),length(str2)≤5000)
输出描述
输出一行,代表他们最长公共子序列。如果公共子序列的长度为空,则输出-1。
示例
输入:
1A2C3D4B56
B1D23CA45B6A
输出:
123456
说明:
"123456"和“12C4B6”都是最长公共子序列,任意输出一个。
找了两个图片便于理解
图一:
图二:
最长公共子序列,最大值一定会出现在最后一个格子里。
参考链接
参考代码
import java.util.Scanner;
public class Main {
public static String process(String str1, String str2) {
if (str1 == null || str1.length() == 0 || str2 == null || str2.length() == 0) {
return "";
}
char[] char1 = str1.toCharArray();
char[] char2 = str2.toCharArray();