Palindroomprogramma in Python

Wat is Palindroomprogramma in Python?

Een palindroom kan worden gedefinieerd als een tekenreeks of een getal dat dezelfde waarde weergeeft wanneer de positie wordt omgekeerd. In eenvoudiger zin blijft het ongewijzigd als het wordt omgekeerd.

Example: deed, 101

Wanneer het omgekeerde woord en het eigenlijke woord (een getal of een reeks) worden vergeleken, leveren ze hetzelfde resultaat op.

Palindroom in Python

Soorten palindroom

In Python-taalPalindroom bestaat uit drie typen, zoals hieronder vermeld:

  • Palindroom van meerdere woorden: Dit is een combinatie van meerdere woorden waarbij de waarde van het originele en omgekeerde woord hetzelfde is.
  • Palindroom van één woord: Dit is een enkel woord waarvan de waarde van het originele en de omgekeerde woorden hetzelfde is.
  • Nummerpalindroom: Dit is een getal waarbij de waarden van het oorspronkelijke en het omgekeerde getal hetzelfde zijn. De gegeven invoer blijft hetzelfde, zowel van voren als van de achterkant.

Algoritme voor een palindroomgetal in Python

De following algoritme kan worden toegepast om het palindroomnummer te controleren:

Stap 1) Voer variabele declaratie uit als 'I' en lees de variabele.

Stap 2) Toewijzen 'I' naar tijdelijke variabele j. ik=j

Stap 3) Voer de lus uit volgens de onderstaande instructies: –

  • M=Ik% 10
  • L=L x 10 + M
  • Ik = Ik / 10

Stap 4) Vergelijk tijdelijke variabele met l. L==J.

Stap 5) Druk het getal af als een palindroom als aan de voorwaarde is voldaan.

Stap 6) Als niet aan de voorwaarde wordt voldaan, drukt u het getal af als geen palindroom.

Stap 7) Einde

Het bovenstaande algoritme is van toepassing op palindroomgetallen in Python.

Methode 1: Palindroomgetal in Python met behulp van Backward Slicing

Achterwaarts snijden in Python omvat doorgaans het gebruik van subset-instructies uit het oorspronkelijke programma. Subset-instructies kunnen ook lussen gebruiken. Het palindroomprogramma van Python kan achterwaarts worden gesneden.

De following Python-programma gebruikt een achterwaartse lus om te bepalen of een string een palindroom is.

Palindroomstringprogramma in Python-code:

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")

Output:

deed is: Palindrome

Code Verklaring:

  • De Python-code probeert de lege string b in omgekeerde volgorde toe te voegen door de lengte van de hoofdstring en de Python-bereikfunctie te gebruiken.
  • De snaar b wordt vervolgens samengevoegd met de lege snaar rev met behulp van de snaarscheider ".

Methode 2: Palindroomprogramma in Python met behulp van Flag

Vlagvariabelen kunnen in Python worden gedefinieerd om palindromen te identificeren. Vlag is geïnitialiseerd op 0. De following programma illustreert het gebruik van de vlagparameter:

Python-code voor Palindrome-programma:

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)

Output:

deed is: Palindrome

0

Code Verklaring:

  • De char in Python begint met een 0-index.
  • Omdat m wordt geïnitialiseerd als -1, wordt de string vanaf de achterkant gelezen als een negatieve index.
  • De for-lus met de if-instructie controleert of elk teken dat begint met index 0 in de string overeenkomt met de omgekeerde index van de string.
  • Als deze echter niet overeenkomt, initialiseert het programma de vlag als 1; anderwise, het zou het initialiseren als 0.

Methode 3: Controleer het Palindroom in Python door het karakter om te keren

De char-methode wordt gebruikt om een ​​string om te keren in dit palindroomprogramma in Python. De originele string wordt gecontroleerd met de omgekeerde string om te bepalen of de string een palindroom is of niet.

Python Palindroom Programmacode:

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))

Output:

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 Verklaring:

  • De str-functie van Python helpt bij het converteren van het numerieke waardeformaat naar het stringformaat. Het programma controleert eerst of waarde 123 een palindroom is of niet.
  • Vervolgens wordt gecontroleerd op de waarde van 101 en de tekenreekswaarde van de akte.
  • De code controleert of de waarde een palindroom is voor zowel numerieke als tekenreeksformaten.

Methode 4: Palindroom in Python controleren met behulp van Character Matching

Bij deze palindroommethode controleert het programma of elk teken in de string overeenkomt met de omgekeerde string door gebruik te maken van de for-lus, de bereikfunctie en de Len-functie.

Python-code:

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")

Output:

Not Palindrome

Code Verklaring:

  • Een door de gebruiker gedefinieerde functie met het label Palindrome Comparator controleert of de waarde een string is of niet.
  • Het programma compares de originele string en het omgekeerde van de originele string met behulp van de criteria origineel[i]!= origineel[len(origineel) – i – 1].
  • Bovenstaand programma maakt gebruik van de lengtetechniek om de lengte van de snaar te bepalen.

Methode 5: Palindroom in Python met behulp van recursie

In Python betekent recursie dat de functie zichzelf herhaaldelijk en volgens een specifieke reeks criteria aanroept. Op deze manier kan het probleem worden opgesplitst in kleinere problemen met dezelfde functiestructuur. Door gebruik te maken van recursieprogrammeerlogica kunnen palindroomreeksen ook worden gecontroleerd

Python-code:

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")

Output:

12321 is: Palindrome

Code Verklaring:

  • Het programma maakt gebruik van een door de gebruiker gedefinieerde functie die zichzelf recursief aanroept.
  • Het oorspronkelijke getal wordt opgesplitst en de restwaarde ervan wordt opgeteld bij de tegenovergestelde waarde.
  • De tegenovergestelde waarde wordt eerst met 10 vermenigvuldigd voordat deze wordt opgeteld met de restwaarde.

Methode 6: While Loop gebruiken om het palindroom te controleren

Een while-lus voert de uitvoering van code iteratief uit totdat de toegepaste voorwaarde waar is.

  • De iteratieve methode kan worden gebruikt om te controleren of de gehele waarde een palindroom is.
  • Het Python-programma maakt gebruik van tijdelijke getallen en de modulo-operatoren.

Python-code:

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")

Output:

Palindrome

Code Verklaring:

  • Het programma maakt gebruik van een while-lus die controleert of het tijdelijke getal kleiner is dan nul.
  • De modulo-operator berekent de rest van het oorspronkelijke getal.
  • Het oorspronkelijke getal wordt gedeeld door 10.
  • De omgekeerde parameter wordt berekend door te vermenigvuldigen met 10.
  • Het resulterende getal wordt opgeteld bij het residu.
  • Het bovenstaande programma controleert het oorspronkelijke nummer en het omgekeerde nummer om het al dan niet als palindroom te classificeren.

Conclusie

  • Palindroom is een waarde vergeleken vanuit de achterwaartse richting, en de voorwaartse richting wordt hetzelfde. Het wordt gebruikt in verschillende wiskundige puzzels.
  • In Python kunnen verschillende manieren worden gebruikt om te vergelijken of een waarde een palindroom is of niet. De gebruikte technieken zijn: – Backward slicing, Character matching, Recursion, Gebruik van loops, rev-, Len- en str-functies, vooraf gedefinieerde functies, recursies enz.