Celui-ci est assez courant. Cela semble difficile, mais ce n'est pas vraiment grave une fois qu'on y réfléchit bien.
Écrivez une fonction golang pour vérifier si une chaîne est un palindrome.
Un palindrome est une séquence de caractères qui est la même même inversée, par exemple :
"aba" est un palindrome
"abb n'est pas
"ab a" est considéré par la plupart comme un palindrome, nous ignorons donc les espaces.
func PalindromeCheck(str string) bool { trimmedStr := strings.ReplaceAll(str, " ", "") len := len(trimmedStr) chars := []rune(trimmedStr) for i := 0; iCette solution est fonctionnellement la même que celle que vous trouverez pour C ou Java lors d'une recherche en ligne. Nous utilisons essentiellement des pointeurs doubles pour parcourir depuis le début et la fin à la recherche d'un caractère incompatible. Lorsqu'une incompatibilité est trouvée, nous pouvons déclarer que la chaîne n'est pas un palindrome.
Pouvons-nous l'améliorer ?
Existe-t-il un meilleur moyen de réduire les espaces plutôt que d’utiliser strings.ReplaceAll ? (il y en a mais ça peut devenir moche)
Qu'en est-il de l'efficacité de la conversion en []rune, existe-t-il un meilleur moyen ?Postez votre avis dans les commentaires.
Merci!
Le code de cet article et de tous les articles de cette série peut être trouvé ici
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3