leetcode1771.由子序列构造的最长回文串长度

相比最长回文子序列,这道题目只需要多一次判断是否跨越两个字符串就行
class Solution {public int longestPalindrome(String word1, String word2) {String s=word1+word2;int n=s.length();int[][] dp=new int[n][n];int result=0;for(int i=n-1;i>=0;i--){dp[i][i]=1;for(int j=i+1;j<n;j++){if(s.charAt(i)==s.charAt(j)){dp[i][j]=dp[i+1][j-1]+2;//回文串分别由word1和word2组成那么就更新结果if(i<word1.length()&&j>=word1.length())result=Math.max(result,dp[i][j]);}elsedp[i][j]=Math.max(dp[i+1][j],dp[i][j-1]);}}return result;}
}
