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

Palindrome vérifie une chaîne

PHPz
PHPzoriginal
2024-07-17 13:36:15975parcourir

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
}

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!

Déclaration:
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