Escribe una función que reciba una cadena no vacía y retorne si es o no un palíndromo::
package main
import "fmt"
import "strings"
func EsPalindromo(palabra string) bool { // Complejidad Tiempo O(n) | Espacio O(n)
base := strings.ToLower(palabra)
resultado := []byte{}
for i := len(base) - 1; i >= 0; i-- {
resultado = append(resultado, base[i])
}
return base == string(resultado) // Aquí está la comparación
}
func main() {
fmt.Println(EsPalindromo("mex"))
fmt.Println(EsPalindromo("Lol"))
}
1. La forma más sencilla de resolver este algoritmo bastante común en entrevistas de programación, es invirtiendo la cadena de entrada y comparándola consigo misma.
2. Aunque se puede resolver de distintas maneras, este es un acercamiento bastante funcional y popular.
3. Para este ejemplo particular, se retorna True o False dependiendo si la condición de igualdad se cumple.
0 remarks:
Publicar un comentario