import java.util.*; public class Solution { /** * longest common subsequence * @param s1 string字符串 the string * @param s2 string字符串 the string * @return string字符串 */ public String LCS (String s1, String s2) { // write code here int n=s1.length();int m=s2.length(); int [][]dp=new int[n+1][m+1]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(s1.charAt(i-1)==s2.charAt(j-1)){ dp[i][j]=dp[i-1][j-1]+1; }else{ dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]); } } } if(dp[n][m]==0)return "-1"; StringBuilder sb=new StringBuilder(); while(n>0&&m>0){ if(s1.charAt(n-1)==s2.charAt(m-1)){ sb.append(s1.charAt(n-1)); n--;m--; }else{ if(dp[n-1][m]>dp[n][m-1]){ n--; }else{ m--; } } } return sb.reverse().toString(); } }