Palindroomprogramma in Python

⚡ Slimme samenvatting

Palindroomprogramma's in Python Controleer of een tekenreeks of getal hetzelfde leest van voor naar achter en van achter naar voor. Gangbare methoden zijn onder andere backward slicing, flag-vergelijking, karakteromkering, karaktermatching, recursie en while-lus-technieken voor zowel tekst- als numerieke waarden.

  • 🔁 Definitie: Een palindroom leest hetzelfde van voor naar achter en van achter naar voor, of het nu een woord of een getal is.
  • ✂️ Slicen en vlaggen: Reverse De tekenreeks met een lus verwerken, of onjuistheden vroegtijdig detecteren met een vlag.
  • 🔄 Recursie en lussen: Recursieve aanroepen en while-lussen keren getallen om met behulp van modulo en gehele deling.
  • ⚡ Efficiëntie: De tweepuntsmethode vergelijkt de uiteinden naar binnen in O(n) tijd en O(1) ruimte.
  • 🤖 Relevantie van AI: Palindroomlogica is een hulpmiddel bij NLP-voorverwerking, DNA-controles en het oefenen van machine learning-interviews.

Palindroomprogramma in Python

Waar zit het 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.

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 originele en omgekeerde getal hetzelfde zijn. De gegeven invoer blijft hetzelfde, zowel van de voorwaartse als van de achterwaartse kant.

Algoritme voor een palindroomgetal in Python

Het volgende 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 achterwaarts snijden

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

Het volgende Python-programma gebruikt een achterwaartse lus om te bepalen of een string een palindroom is.

Palindroom stringprogramma 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 Uitleg:

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

Methode 2: Palindroomprogramma in Python met behulp van Vlag

Vlagvariabelen kunnen worden gedefinieerd in Python om palindromen te identificeren. Flag wordt geïnitialiseerd op 0. Het volgende programma illustreert het gebruik van de flag-parameter:

Python Code voor het Palindroomprogramma:

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

  • De char erin 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 dit niet het geval is, initialiseert het programma de vlag als 1. Anders zou het de vlag als 0 initialiseren.

Methode 3: Palindroom controleren Python door het omkeren van het karakter

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

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

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

  • Python's str-functie 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 inchecken Python met behulp van karaktermatching

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

  • Een door de gebruiker gedefinieerde functie met het label Palindrome Comparator controleert of de waarde een string is of niet.
  • Het programma vergelijkt de oorspronkelijke tekenreeks met de omgekeerde versie ervan aan de hand van de volgende 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 gebruik van recursie

In PythonRecursie betekent 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 Uitleg:

  • 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.
  • De Python Het 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 Uitleg:

  • 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.

Veelgestelde vragen

Vergelijk de waarde met zijn omgekeerde met behulp van s == s[::-1], waarbij je eerst de getallen converteert met str(). Overeenkomende richtingen betekenen een palindroom.

De twee-pointer-methode bespaart geheugen met een tijdscomplexiteit van O(n) en een ruimtecomplexiteit van O(1), maar slice-reversal is in C meestal het snelst.Python.

Eén aanwijzer begint vooraan, de andere achteraan; ze worden van binnen naar buiten vergeleken. Door paren te vergelijken totdat ze elkaar ontmoeten, wordt een palindroom bevestigd.

Zet de tekst om naar kleine letters en behoud alleen alfanumerieke tekens met isalnum(), vergelijk het vervolgens met de omgekeerde versie. Spaties en hoofdletters doen er dan niet meer toe.

Reverse een string met slice s[::-1], reversed() plus “”.join(), of een prepending loop, en vergelijk deze vervolgens met het origineel.

Ja. Een enkel teken en een lege tekenreeks lezen hetzelfde als ze omgekeerd worden gelezen, dus s == s[::-1] geeft True terug.

RevErsal-logica stuurt NLP-voorverwerking, bio-informatische DNA-controles en feature engineering aan. Bibliotheken zoals NumPy Vectoriseer deze symmetrietests voor machinaal leren.

Ja. GitHub Copilot en vergelijkbare AI-assistenten genereren varianten met slicen, twee pointers, recursie of lussen op basis van een prompt. Bekijk altijd eerst de randgevallen.

Vat dit bericht samen met: