Este es bastante común. Suena difícil, pero no está realmente mal una vez que lo piensas bien.
Escribe una función golang para comprobar si una cadena es un palíndromo.
Un palíndromo es una secuencia de caracteres que es la misma incluso cuando están invertidos, por ejemplo:
"aba" es un palíndromo
"abb no es
La mayoría considera "ab a" un palíndromo, por lo que ignoramos los espacios en blanco.
func PalindromeCheck(str string) bool { trimmedStr := strings.ReplaceAll(str, " ", "") len := len(trimmedStr) chars := []rune(trimmedStr) for i := 0; iEsta solución es funcionalmente la misma que encontrará para C o Java cuando realice búsquedas en línea. Básicamente, utilizamos punteros duales para recorrer desde el principio hasta el final en busca de un carácter que no coincida. Cuando se encuentra una discrepancia, podemos declarar que la cadena no es un palíndromo.
¿Podemos mejorarlo?
¿Existe una mejor manera de recortar espacios en blanco en lugar de usar cadenas.ReplaceAll? (lo hay pero se puede poner feo)
¿Qué pasa con la eficiencia de la conversión a una []runa? ¿Existe una manera mejor?Publica tu opinión en los comentarios.
¡Gracias!
El código de esta publicación y todas las publicaciones de esta serie se pueden encontrar aquí
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3