Hola, tenemos la respuesta a lo que buscabas, deslízate y la hallarás un poco más abajo.
Ejemplo 1: longitud de python lcs
def lcs(X, Y):
n =len(Y)
m =len(X)
L =[[None]*(n +1)for i in range(m +1)]for i in range(m +1):for j in range(n +1):if i ==0or j ==0:
L[i][j]=0
elif X[i-1]== Y[j-1]:
L[i][j]= L[i-1][j-1]+1else:
L[i][j]=max(L[i-1][j], L[i][j-1])return L[m][n]
Ejemplo 2: subsecuencia común más larga
classSolution:
def longestCommonSubsequence(self, text1: str, text2: str)->int:"""
text1: horizontally
text2: vertically
"""
dp =[[0for _ in range(len(text1)+1)]for _ in range(len(text2)+1)]for row in range(1,len(text2)+1):for col in range(1,len(text1)+1):if text2[row-1]==text1[col-1]:
dp[row][col]=1+ dp[row-1][col-1]else:
dp[row][col]=max(dp[row-1][col], dp[row][col-1])return dp[len(text2)][len(text1)]
Ejemplo 3: subsecuencia común más larga
intmaxSubsequenceSubstring(char x[],char y[],int n,int m)int dp[MAX][MAX];// Initialize the dp[][] to 0. for(int i =0; i <= m; i++)for(int j =0; j <= n; j++)
dp[i][j]=0;// Calculating value for each element. for(int i =1; i <= m; i++)for(int j =1; j <= n; j++)// If alphabet of string X and Y are // equal make dp[i][j] = 1 + dp[i-1][j-1] if(x[j -1]== y[i -1])
dp[i][j]=1+ dp[i -1][j -1];// Else copy the previous value in the // row i.e dp[i-1][j-1] else
dp[i][j]= dp[i][j -1];// Finding the maximum length. int ans =0;for(int i =1; i <= m; i++)
ans =max(ans, dp[i][n]);return ans;
Reseñas y calificaciones
Si guardas algún reparo y disposición de progresar nuestro artículo eres capaz de escribir una crítica y con mucho gusto lo interpretaremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)