Maison > développement back-end > Golang > Palindrome vérifie une chaîne

Palindrome vérifie une chaîne

PHPz
Libérer: 2024-07-17 13:36:15
original
1246 Les gens l'ont consulté

Palindrome check a string

Celui-ci est assez courant. Cela semble difficile, mais ce n'est pas vraiment grave une fois qu'on y réfléchit.

É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; i < len/2; i++ {
        if chars[i] != chars[len-i-1] {
            return false
        }
    }
    return true
}
Copier après la connexion

Cette 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 discordance 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 ?

Publiez vos réflexions dans les commentaires.

Merci !

Le code de cet article et de tous les articles de cette série peut être trouvé ici

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal