Logo Zéphyrnet

Qu'est-ce que Palindrome en Python ? Codes, algorithmes et plus

Date :

image

Un palindrome est un mot, une phrase, un nombre ou une autre séquence d'unités qui peuvent être lus de la même manière dans les deux sens, avec des tolérances générales pour les ajustements de la ponctuation et des séparateurs de mots. Lorsque ses chiffres sont inversés, ils s'avèrent être le même nombre que le nombre d'origine. Les palindromes peuvent également être numériques. Par exemple, madame, 1234321. Ce blog va nous apprendre à créer un Palindrome en Python.

Si vous voulez plonger plus loin, vérifiez sur ce cours gratuit sur Palindrome dans les programmes Python et PG sur le génie logiciel. Il couvre les principes fondamentaux de la programmation Python, tels que sa syntaxe, ses variables, ses types de données, ses opérateurs, ses jetons et ses chaînes.. Ce cours vous offre également un certificat à la fin pour vous aider à garder une longueur d'avance sur la concurrence.

  1. Qu'est-ce que le palindrome
  2. Qu'est-ce qu'un nombre palindrome
  3. Qu'est-ce qu'une corde Palindrome
  4. Qu'est-ce qu'une expression palindrome
  5. Exemples de palindrome
  6. Palindrome en Python Algorithme
  7. Palindrome en code Python
    a. utiliser la boucle while
    b. Utilisation de la fonction inverse
  8. Vérifier si une liste chaînée est un palindrome

Qu'est-ce que le palindrome ?

Un palindrome est un mot, une phrase, un nombre ou une autre séquence d'unités qui peuvent être lus de la même manière dans les deux sens, généralement s'ils sont séparés par des virgules.

Bonne journée palindrome multiculturelle en retard ! Le 02/02/2020 était une journée unique en février. Cela fonctionne que votre format de date préféré soit MM/JJ/AAAA ou JJ/MM/AAAA ou AAAA/MM/JJ.

Exemple de palindrome

Ces motifs sont appelés palindromes. Les lire à partir du premier caractère ou à l'envers ne fait aucune différence. C'est un problème d'introduction intéressant à résoudre avec l'utilisation de la programmation. Dans ce blog, nous allons comprendre le processus de réflexion, avancer étape par étape et proposer diverses solutions pour vérifier si la corde est un palindrome.

Un palindrome est un mot, une phrase, un nombre, ou une autre séquence de personnages qui lit le même vers l'arrière que vers l'avant.

Ils sont classés en 3 types, qui sont les nombres palindromes,
Chaînes palindromes, expression palindrome : une collection de mots et de caractères spéciaux.

[Contenu intégré]

Qu'est-ce qu'un nombre palindrome ?

Un nombre palindrome est une collection de nombres qui restent les mêmes lorsqu'ils sont lus à l'envers. On dit aussi que ces nombres sont symétriques. Lorsque ses chiffres sont inversés, ils s'avèrent être le même nombre que le nombre d'origine. Par exemple, 1234321 est un palindrome. Si ses chiffres sont inversés, il redevient 1234321, notre numéro d'origine. 1234232 n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient 2324321, ce qui est différent de l'original.

Qu'est-ce qu'une Corde Palindrome ?

Une chaîne Palindrome est une collection d'alphabets qui reste le même lorsqu'il est lu à l'envers. Ils sont aussi appelés alphabets symétriques. Lorsque ses alphabets sont écrits dans l'ordre inverse, ils s'avèrent être la même combinaison d'alphabets que la chaîne d'origine. Par exemple, « madame » est un palindrome. Si ses alphabets sont inversés, il redevient "madame", qui était notre chaîne d'origine. "serviette" n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient "nikpan" qui est différent de la chaîne d'origine.

Qu'est-ce que l'expression palindrome ?

Palindrome Phrase est une collection de mots et de caractères spéciaux qui restent de la même manière lorsqu'ils sont lus à l'envers. On dit aussi que ces phrases sont symétriques. Lorsque la phrase est inversée, elle s'avère être exactement la même phrase que l'originale. Par exemple : a1b2c33c2b1a est un Palindrome. Si la phrase est inversée, elle redevient a1b2c33c2b1a, notre phrase originale. a4b523kg n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient gk325b4a, ce qui est différent de la phrase d'origine.

Palindrome Phrase est une collection de mots et de caractères spéciaux qui restent de la même manière lorsqu'ils sont lus à l'envers. On dit aussi que ces phrases sont symétriques. Lorsque la phrase est inversée, elle s'avère être exactement la même phrase que l'originale. Par exemple : a1b2c33c2b1a est un palindrome. Si la phrase est inversée, elle redevient a1b2c33c2b1a, notre phrase originale. a4b523kg n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient gk325b4a, ce qui est différent de la phrase d'origine.

Palindrome Phrase est une collection de mots et de caractères spéciaux qui restent de la même manière lorsqu'ils sont lus à l'envers. On dit aussi que ces phrases sont symétriques. Lorsque la phrase est inversée, elle s'avère être exactement la même phrase que l'originale. Par exemple : a1b2c33c2b1a est un Palindrome. Si la phrase est inversée, elle redevient a1b2c33c2b1a, notre phrase originale. a4b523kg n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient gk325b4a, ce qui est différent de la phrase d'origine.

Palindrome Phrase est une collection de mots et de caractères spéciaux qui restent de la même manière lorsqu'ils sont lus à l'envers. On dit aussi que ces phrases sont symétriques. Lorsque la phrase est inversée, elle s'avère être exactement la même phrase que l'originale. Par exemple : a1b2c33c2b1a est un Palindrome. Si la phrase est inversée, elle redevient a1b2c33c2b1a, notre phrase originale. a4b523kg n'est pas un Palindrome. Lorsqu'il est inversé, le nouveau numéro devient gk325b4a, ce qui est différent de la phrase d'origine.

Exemples de palindrome

Voici quelques exemples de Palindromes :

  • Maman
  • Madame
  • a2332a
  • Caoutchouc
  • 123454321

Anecdote : 02/02/2020 est-il une chaîne de palindrome lorsqu'il est considéré comme une phrase de palindrome ?

Palindrome dans l'algorithme Python

Vous pouvez vous inscrire à ces cours liés à Python pour vous familiariser avec le langage de programmation Python et obtenir votre certificat gratuit sur Great Learning Academy avant de pratiquer l'algorithme et le code Palindromes en Python.

Maintenant comment créer des Palindromes en Python ?

Considérez l'algorithme pour l'énoncé du problème : Trouver si un un magnifique est un palindrome ou non.

  1. Vérifiez si la première lettre de l'index et la dernière lettre de l'index sont identiques ; si ce n'est pas le même, retourne false.
  2. Répétez l'étape 2 en incrémentant le premier index et en décrémentant le dernier index
  3. Répétez l'étape 3 en tant que premier dernier) puis renvoyez Vrai

Considérons maintenant un algorithme pour l'énoncé du problème : Trouver si un nombre est un palindrome ou pas.

  1. Copiez le nombre d'entrée dans une autre variable pour les comparer plus tard.
  2. Ensuite, nous inversons le nombre donné. Pour inverser le nombre, procédez comme suit :
    1. Isoler le dernier chiffre d'un nombre. L'opérateur modulo (%) renvoie le reste d'une division
    2. Ajouter lastDigit pour inverser. inverse = (inverse * 10) + dernier chiffre.
    3. Supprimez le dernier chiffre du numéro. nombre = nombre / 10.
    4. Itérer ce processus. tandis que (nombre > 0)
  3. Maintenant, nous comparons le nombre inversé avec le nombre d'origine.
  4. Si les nombres sont les mêmes, alors le nombre est un palindrome, sinon ce n'est pas

Maintenant que nous avons l'algorithme, convertissons-le en code en suivant une logique similaire.

Palindrome en code Python

Utilisation de la boucle While (nombre)

number=int(input("Enter any number :"))
#store a copy of this number
temp=number
#calculate reverse of this number
reverse_num=0
while(number>0):
    #extract last digit of this number
    digit=number%10
    #append this digit in reveresed number
    reverse_num=reverse_num*10+digit
    #floor divide the number leave out the last digit from number
    number=number//10
#compare reverse to original number
if(temp==reverse_num):
    print("The number is palindrome!")
else:
    print("Not a palindrome!")

Utilisation de chaînes de boucle While

def check_palindrome(string):
    length = len(string)
    first = 0
    last = length -1 
    status = 1
    while(first<last):
           if(string[first]==string[last]):
               first=first+1
               last=last-1
           else:
               status = 0
               break
    return int(status)  
string = input("Enter the string: ")
print("Method 1")
status= check_palindrome(string)
if(status):
    print("It is a palindrome ")
else:
    print("Sorry! Try again")

TESTEZ LE CODE

Entrée - Madame
Sortie – C'est un palindrome

C'est une bonne approche, mais Python nous permet d'utiliser la fonction inverse. Nous savons qu'un mot lu en avant et en arrière si le même est un palindrome. Par conséquent, générons les chaînes avant et arrière pour le même et vérifions si les deux chaînes sont identiques.

Utilisation de la fonction inverse

def check_palindrome_1(string):
    reversed_string = string[::-1]
    status=1
    if(string!=reversed_string):
        status=0
    return status


string = input("Enter the string: ")
status= check_palindrome_1(string)
if(status):
    print("It is a palindrome ")
else:
    print("Sorry! Try again")

TESTEZ LE CODE

Entrée: Entrez la chaîne : malayalam
Sortie: C'est un palindrome

C'est une bonne approche, mais Python nous permet d'utiliser la fonction inverse. Nous savons qu'un mot se lit en avant et en arrière s'il s'agit d'un palindrome. Par conséquent, générons les chaînes avant et arrière pour le même et vérifions si les deux chaînes sont identiques.

Utilisation de la fonction inverse

def check_palindrome_1(string):
    reversed_string = string[::-1]
    status=1
    if(string!=reversed_string):
        status=0
    return status


string = input("Enter the string: ")
status= check_palindrome_1(string)
if(status):
    print("It is a palindrome ")
else:
    print("Sorry! Try again")

TESTEZ LE CODE

Entrée : saisissez la chaîne : malayalam
Sortie : C'est un palindrome

Programme Palindrome en Python

Dans cet article, nous verrons différentes manières d'implémenter le programme palindrome en Python

Corde Palindrome

Méthode 1:

  1. Trouver l'inverse d'une chaîne
  2. Vérifier si l'inverse et l'original sont identiques ou non
def isPalindrome(s):
	return s == s[::-1]

# Driver code
s = "kayak"
ans = isPalindrome(s)

if ans:
	print("Yes")

else:
	print("No")

Étape:  

  1. On crée une fonction ispalindrome
  2. Renvoie une variable en découpant le paramètre de manière inverse
  3. Dans notre code de pilote, nous avons écrit une chaîne 
  4. Enfin, dans notre condition if-else, nous exécutons s'il s'agit d'un palindrome print yes ou print no

Méthode 2:

  • Utiliser une boucle itérative
def isPalindrome(str):

	for i in range(O, int(len(str)/2)):
	    if str[i] != str[len(str)-i-1]:
		return False
	return True

# main function
s = "kayak"
ans = isPalindrome(s)

if (ans):
	print("Yes")

else:
	print("No")

Étape:  

  1. Une boucle est exécutée du début à la moitié de la longueur et vérifie le premier caractère jusqu'au dernier caractère de la chaîne.
  2. Et vérifiez du deuxième caractère à l'avant-dernier caractère de la chaîne.
  3. Si l'un des caractères ne correspond pas, ce n'est pas un palindrome.

Méthode 3:

  • Utilisation de la fonction intégrée pour inverser une chaîne
def isPalindrome(s):

	rev = ‘'.join(reversed(s))

	if (s == rev):
		return True
	return False

# main function
s = "kayak"
ans = isPalindrome(s)

if(ans):
	print("Yes")
else:
	print("No")

Étape:

Dans cette méthode, nous utilisons une fonction prédéfinie '.join'

Méthode 4:

  • Utilisation de la récursivité 
def isPalindrome(s):

	s = s.lower()

	1 = len(s)

	if 1 <2:
		return True

	elif s(0) == s{l - 1):

		return isPalindrome(s[1: l - 1])
	else:
		return False

s = "Kayak"
ans = isPalindrome(s)

	if ans:
		print("Yes")

	y else:
		print("No")

Étape:

Cette méthode compare le premier et le dernier élément de la chaîne et donne au reste de la sous-chaîne un appel récursif à elle-même.

Palindrome dans une liste chaînée

Intensifions cela et considérons une autre structure de données. Que se passe-t-il si les données sont stockées dans une liste chaînée ? Pour résoudre ce problème, nous devons comprendre les listes chaînées. Une liste chaînée jesa structure de données avec une allocation de mémoire non contiguë.

Représentation de la liste liée

Nous allons commencer par définir une liste chaînée en python

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None
        
class Solution:
    def __init__(self,seq):
        """prepends item of lists into linked list"""
        self.head = None
        for item in seq:
            node = ListNode(item)
            node.next = self.head
            self.head = node


    def palindrome(self):
        """ Check if linked list is palindrome and return True/False."""
        node = self.head
        var = node #var is initialized to head
        prev = None #initially, prev is None
    
        # prev approaches to middle of list till var reaches end or None 
        while var and var.next:
            var = var.next.next
            temp = node.next   #reverse elements of first half of list
            node.next = prev
            prev = node
            node = temp
    
        if var:  # in case of odd num elements
            tail = node.next
        else:    # in case of even num elements
            tail = node
    
        while prev:
            # compare reverse element and next half elements          
            if prev.val == tail.val:
                tail = tail.next
                prev = prev.next
            else:
                return False
        return True
# Test Cases
list_1 = Solution([7, 8, 6 ,  3 , 7 ,3 , 6, 8, 7])
print([7, 8, 6 ,  3 , 7 ,3 , 6, 8, 7],end='->')
print(list_1.palindrome())
list_2 = Solution([6 , 3 , 4, 6])
print([6 , 3 , 4, 6],end='->')
print(list_2.palindrome())
list_3 = Solution([3, 7 ,3 ])
print([ 3 , 7, 3],end='->')
print(list_3.palindrome())
list_4 = Solution([1])
print([1],end='->')
print( list_4.palindrome())

TESTEZ LE CODE

Production -
3, 7, 3 – Vrai
1 – Vrai

La logique pour vérifier si une liste chaînée est un palindrome ou non est la version modifiée de celle que nous avons implémentée sur les chaînes et les tableaux. Nous vérifions si l'inverse de la liste chaînée est le même que la séquence d'origine. Au lieu d'inverser l'intégralité de la liste chaînée et de la stocker dans un emplacement temporaire, nous inversons la première moitié de la liste chaînée et vérifions si la première moitié et la seconde moitié correspondent après l'inversion.

Découvrez un* Algorithme en Intelligence Artificielle.

Par conséquent, nous définissons une fonction appelée palindrome, qui a pour paramètres node, var( signifie variable), previous et temp. Nous sautons à la fin de la liste en utilisant la variable var à la ligne 29, et pendant ce temps, nous stockons les données du dernier nœud dans la variable prev. Par conséquent, la comparaison de prev.val et tail.val à la ligne 41 nous donne la réponse.

# Test Cases
list_1 = Solution([7, 8, 6 ,  3 , 7 ,3 , 6, 8, 7])
print(list_1.palindrome())
list_2 = Solution([6 , 3 , 4, 6])
print(list_2.palindrome())
list_3 = Solution([3, 7 ,3 ])
print(list_3.palindrome())
listl_4 = Solution([1])
Print( list_4.palindrome())

Dans cet article, nous avons examiné les palindromes de fond en comble et les avons bien compris. Essayez de développer de meilleures techniques de mise en œuvre en utilisant différentes structures de données pour améliorer votre maîtrise du codage. Nous continuerons à publier de nombreux autres articles sur la mise en œuvre de structures de données et d'algorithmes à l'aide de Python Restez à l'écoute et lisez le Top XNUMX des livres Python.

Lectures complémentaires

  1. Factorielle d'un nombre en Python
  2. Convertir une liste en chaîne en Python
  3. Série de Fibonacci en Python
  4. Tutoriel Python
  5. Fonction d'évaluation en Python

KickStart your Artificial Intelligence Journey with Great Learning, qui offre des cours gratuits en ligne avec une formation de classe mondiale. Que vous soyez intéressé par machine learning, l'exploration de données ou l'analyse des données, Great Learning a un cours pour vous !

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?