Programma palindromo in Python

⚡ Riepilogo intelligente

Programmi palindromi in Python Verifica se una stringa o un numero si leggono allo stesso modo da sinistra a destra e da destra a sinistra. Gli approcci più comuni includono lo slicing all'indietro, il confronto di flag, l'inversione di caratteri, la corrispondenza di caratteri, la ricorsione e le tecniche con cicli while, sia per valori testuali che numerici.

  • 🔁 Definizione: Un numero o una parola palindromo si legge allo stesso modo sia da sinistra a destra che da destra a sinistra.
  • ✂️ Sezionature e bandiere: Reverse la stringa con un ciclo, oppure intercetta tempestivamente le discrepanze con un flag.
  • 🔄 Ricorsione e cicli: Le chiamate ricorsive e i cicli while invertono i numeri utilizzando il modulo e la divisione intera.
  • ⚡ Efficienza: Il metodo a due puntatori confronta le estremità verso l'interno in tempo O(n) e spazio O(1).
  • 🤖 Rilevanza dell'IA: La logica dei palindromi è utile per la preelaborazione del linguaggio naturale, i controlli del DNA e la pratica dei colloqui di apprendimento automatico.

Programma palindromo in Python

In cosa consiste il Programma Palindromo Python?

Un palindromo può essere definito come una stringa o un numero che visualizza lo stesso valore quando la sua posizione è invertita. In un senso più semplice, rimane inalterato quando invertito.

Example: deed, 101

Quando vengono confrontate la parola inversa e la parola reale (un numero o una stringa), producono lo stesso risultato.

Tipi di palindromo

In Python Lingua, Il palindromo è di tre tipi, come elencato di seguito:

  • Palindromo di più parole: Si tratta di una combinazione di più parole in cui il valore delle parole originali e invertite è lo stesso.
  • Palindromo di una sola parola: Questa è una singola parola in cui il valore delle parole originale e invertita è lo stesso.
  • Numero palindromo: Questo è un numero in cui i valori dei numeri originali e invertiti sono gli stessi. L'input dato rimane lo stesso sia dal lato anteriore che dal lato posteriore.

Algoritmo per un numero palindromo in Python

Per verificare il numero palindromo è possibile applicare il seguente algoritmo:

Passo 1) Esegui la dichiarazione della variabile come 'I' e leggi la variabile.

Passo 2) Assegna "I' alla variabile temporanea j. io=j

Passo 3) Esegui il loop con le istruzioni come mostrato di seguito: –

  • M=I% 10
  • L=L x 10 + M
  • io = io/10

Passo 4) Confronta la variabile temporanea con l. L==J.

Passo 5) Stampa il numero che deve essere palindromo se la condizione è soddisfatta.

Passo 6) Se la condizione non è soddisfatta, stampa il numero come non palindromo.

Passo 7) Fine

L'algoritmo sopra riportato si applica ai numeri palindromi in Python.

Metodo 1: numero palindromo in Python utilizzando l'affettatura all'indietro

Affettare all'indietro Python generalmente implica l'utilizzo di istruzioni di sottoinsieme del programma originale. Anche le istruzioni di sottoinsieme possono utilizzare i cicli. PythonIl programma palindromo di può essere suddiviso all'indietro.

Il seguente programma Python utilizza un ciclo all'indietro per determinare se una stringa è palindroma.

Programma di stringhe palindromo in Python codice:

a='deed'
lena=len(a)
b=[]
for i in range(lena - 1, -1, -1):
    b.append(a[i])
rev = "".join(b)
print(a + " is: ", end="")
if a == rev:
    print("Palindrome")
else:
    print("Not Palindrome")

Produzione:

deed is: Palindrome

Code Spiegazione:

  • Migliori Python il codice tenta di aggiungere la stringa vuota b in ordine inverso utilizzando la lunghezza della stringa principale e la Python funzione di portata.
  • La stringa b viene quindi unita alla stringa vuota rev utilizzando il separatore di stringa ".

Metodo 2: Programma palindromo in Python utilizzando la bandiera

Le variabili flag possono essere definite in Python per identificare i palindromi. Flag è inizializzato a 0. Il seguente programma illustra l'uso del parametro flag:

Python Code per il Programma Palindromo:

Pld = "deed"
m = -1
flag = 0
for char in Pld:
    if char != Pld[m]:
        flag = 1
        break
    m = m - 1
print(Pld + " is: ", end="")
if flag:
    print("Not Palindrome")
else:
    print("Palindrome")
print(flag)

Produzione:

deed is: Palindrome

0

Code Spiegazione:

  • Il carattere dentro Python inizia con un indice 0.
  • Poiché m è inizializzato come -1, la stringa viene letta dal retro come indice negativo.
  • Il ciclo for con l'istruzione if controlla se ogni carattere che inizia con l'indice 0 presente nella stringa corrisponde all'indice inverso della stringa.
  • Tuttavia, se non corrisponde, il programma inizializza il flag come 1; in caso contrario, lo inizializza come 0.

Metodo 3: controlla il palindromo Python invertendo il carattere

Il metodo char viene utilizzato per invertire una stringa in questo programma palindromo in PythonLa stringa originale viene confrontata con la stringa inversa per determinare se la stringa è palindroma o meno.

Python Programma palindromo Code:

Base = "123"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "101"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "deed"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))

Produzione:

Not Palindrome
The original string is: 123
The reverse string is: 321
Palindrome
The original string is: 101
The reverse string is: 101
Palindrome
The original string is: the deed
The reverse string is: the deed

Code Spiegazione:

  • PythonLa funzione str aiuta a convertire il formato del valore numerico in formato stringa. Il programma controlla innanzitutto se il valore 123 è palindromo oppure no.
  • Quindi controlla il valore di 101 e il valore della stringa dell'atto.
  • Il codice verifica che il valore sia palindromo sia per il formato numerico che per quello stringa.

Metodo 4: come verificare il palindromo Python utilizzando la corrispondenza dei caratteri

In questo metodo palindromo, il programma controlla se ogni carattere nella stringa corrisponde alla stringa inversa utilizzando il ciclo for, la funzione range e la funzione Len.

Python codice:

def PalindromeComparator(original):
    for i in range(0, len(original)):
        if original[i] != original[len(original) - i - 1]:
            return False
            return True
Base = "deed"
print("Palindrome") if PalindromeComparator(Base) else print("Not Palindrome")

Produzione:

Not Palindrome

Code Spiegazione:

  • Una funzione definita dall'utente etichettata come Comparatore palindromo controlla se il valore è una stringa o meno.
  • Il programma confronta la stringa originale e la sua versione inversa utilizzando i criteri original[i]!= original[len(original) – i – 1].
  • Il programma precedente utilizza la tecnica della lunghezza per determinare la lunghezza della stringa.

Metodo 5: Palindromo in Python usando la ricorsione

In Python, ricorsione significa che la funzione chiama se stessa ripetutamente e secondo un insieme specifico di criteri. In questo modo, il problema può essere suddiviso in problemi più piccoli utilizzando la stessa struttura di funzioni. Utilizzando la logica di programmazione ricorsiva, è possibile controllare anche le stringhe palindrome

Python codice:

def palcomprec(number, oppo):
    if number == 0:
        return oppo
    remainder = int(number % 10)
    oppo = (oppo * 10) + remainder
    return palcomprec(int(number / 10), oppo)
Base = 12321
reverse = 0
reverse = palcomprec(Base, reverse)
print(str(Base) + " is: ", end="")
print("Palindrome") if reverse == Base else print("Not Palindrome")

Produzione:

12321 is: Palindrome

Code Spiegazione:

  • Il programma fa uso di una funzione definita dall'utente che richiama ricorsivamente se stessa.
  • Il numero originale viene scomposto e il suo valore residuo viene aggiunto al valore opposto.
  • Il valore opposto viene prima moltiplicato per 10 prima di essere aggiunto al valore residuo.

Metodo 6: Come utilizzare While Loop per verificare il palindromo

Un ciclo while esegue l'esecuzione del codice su base iterativa finché la condizione applicata non diventa vera.

  • Il metodo iterativo può essere utilizzato per verificare se il valore intero è palindromo.
  • Migliori Python Il programma utilizza numeri temporanei e gli operatori modulo.

Python codice:

original = 101
temporary = original
reverse = 0
while temporary > 0:
    remainder = temporary % 10
    reverse = (reverse * 10) + remainder
    temporary = temporary // 10
if original == reverse:
  print('Palindrome')
else:
  print("Not Palindrome")

Produzione:

Palindrome

Code Spiegazione:

  • Il programma utilizza un ciclo while che controlla se il numero temporaneo è inferiore a zero.
  • L'operatore modulo calcola il resto del numero originale.
  • Il numero originale viene diviso per 10.
  • Il parametro inverso si calcola moltiplicando per 10.
  • Il numero risultante viene aggiunto al residuo.
  • Il programma sopra controlla il numero originale e il numero inverso per classificarlo come palindromo o meno.

DOMANDE FREQUENTI

Confronta il valore con il suo inverso usando s == s[::-1], convertendo prima i numeri con str(). La corrispondenza delle direzioni indica un numero palindromo.

Il metodo a due puntatori consente di risparmiare memoria con tempo O(n) e spazio O(1), tuttavia l'inversione dello slice è solitamente più veloce in CPython.

Un puntatore inizia all'inizio, l'altro alla fine; si confrontano dall'interno verso l'interno. Abbinando le coppie fino a quando non si incontrano si conferma un palindromo.

Converti il ​​testo in minuscolo e mantieni solo i caratteri alfanumerici con isalnum(), quindi confrontalo con il suo inverso. Spazi e maiuscole non contano più.

Reverse una stringa con slice s[::-1], reversed() più “”.join() o un ciclo anteposto, quindi confrontala con l'originale.

Sì. Un singolo carattere e una stringa vuota si leggono allo stesso modo al contrario, quindi s == s[::-1] restituisce True.

RevLa logica generale guida la preelaborazione NLP, i controlli del DNA bioinformatici e l'ingegneria delle caratteristiche. Librerie come NumPy vettorializzare questi test di simmetria per l'apprendimento automatico.

Sì. GitHub Copilot e assistenti IA simili generano versioni con slicing, a due puntatori, ricorsive o cicli a partire da un prompt. È sempre consigliabile esaminare prima i casi limite.

Riassumi questo post con: