Ten en cuenta que en las ciencias informáticas cualquier problema casi siempre tiene diferentes resoluciones, por lo tanto nosotros aquí mostraremos lo más óptimo y mejor.
Ejemplo: la subcadena palindrómica más larga de python
classSolution(object):deflongestPalindrome(self, s):
dp =[[Falsefor i inrange(len(s))]for i inrange(len(s))]for i inrange(len(s)):
dp[i][i]=True
max_length =1
start =0for l inrange(2,len(s)+1):for i inrange(len(s)-l+1):
end = i+l
if l==2:if s[i]== s[end-1]:
dp[i][end-1]=True
max_length = l
start = i
else:if s[i]== s[end-1]and dp[i+1][end-2]:
dp[i][end-1]=True
max_length = l
start = i
return s[start:start+max_length]
ob1 = Solution()print(ob1.longestPalindrome("ABBABBC"))
Si guardas algún reparo o capacidad de progresar nuestro reseña puedes escribir una referencia y con deseo lo leeremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)