package main
/**
* longest common subsequence
* @param s1 string字符串 the string
* @param s2 string字符串 the string
* @return string字符串
*/
func LCS( s1 string , s2 string ) string {
// dp[n][m]=max(dp[n-1][m],dp[n][m-1])|dp[n-1]dp[m-1]+1
dp:=make([][]string,len(s1)+1)
for i:=range dp{
dp[i]=make([]string,len(s2)+1)
}
for i:=1;i<len(s1)+1;i++{
for j:=1;j<len(s2)+1;j++{
if s1[i-1]==s2[j-1]{
dp[i][j]=dp[i-1][j-1]+string(s1[i-1])
}else{
dp[i][j]=max(dp[i-1][j],dp[i][j-1])
}
}
}
if dp[len(s1)][len(s2)]==""{return "-1"}
return dp[len(s1)][len(s2)]
}
func max(a,b string)string{
if len(a)>len(b){
return a
}
return b
}