Palindromprogram i Python

โšก Smart sammanfattning

Palindromprogram i Python kontrollera om en strรคng eller ett tal lรคses likadant framรฅt och bakรฅt. Vanliga metoder inkluderar bakรฅtskรคrning, flaggjรคmfรถrelse, teckenomvรคndning, teckenmatchning, rekursion och while-loop-tekniker fรถr bรฅde text och numeriska vรคrden.

  • ๐Ÿ” Definition: Ett palindrom lรคser samma sak framรฅt och bakรฅt, oavsett om det รคr ett ord eller en siffra.
  • โœ‚๏ธ Skivning och flaggor: Reverse strรคngen med en loop, eller upptรคck avvikelser tidigt med en flagga.
  • ๐Ÿ”„ Rekursion och loopar: Rekursiva anrop och while-loopar reverserar tal med hjรคlp av modulo- och heltalsdivision.
  • โšก Effektivitet: Tvรฅpekarmetoden jรคmfรถr รคndar inรฅt i O(n) tid och O(1) rum.
  • ๐Ÿค– AI-relevans: Palindromlogik hjรคlper NLP-fรถrbehandling, DNA-kontroller och intervjuรถvningar inom maskininlรคrning.

Palindromprogram i Python

Vad รคr Palindrome-programmet i Python?

En palindrom kan definieras som en strรคng eller ett tal som visar samma vรคrde nรคr dess position รคr omvรคnd. I en enklare mening fรถrblir den ofรถrรคndrad nรคr den vรคnds.

Example: deed, 101

Nรคr det omvรคnda ordet och det faktiska ordet (ett tal eller en strรคng) jรคmfรถrs ger de samma resultat.

Typer av palindrom

In Python sprรฅk, Palindrom รคr av tre typer, enligt listan nedan:

  • Flerords palindrom: Detta รคr en kombination av flera ord dรคr vรคrdet pรฅ de ursprungliga och omvรคnda orden รคr detsamma.
  • Enords palindrom: Detta รคr ett enda ord dรคr vรคrdet av de ursprungliga och omvรคnda orden รคr detsamma.
  • Nummer palindrom: Detta รคr ett tal dรคr de ursprungliga och omvรคnda talens vรคrden รคr samma. Den givna ingรฅngen fรถrblir densamma antingen frรฅn framรฅt eller frรฅn baksidan.

Algoritm fรถr ett palindromnummer i Python

Fรถljande algoritm kan anvรคndas fรถr att kontrollera palindromnumret:

Steg 1) Utfรถr variabeldeklaration som 'I' och lรคs variabeln.

Steg 2) Tilldela 'I' till temporรคr variabel j. i=j

Steg 3) Utfรถr slingan med instruktionerna som visas nedan: โ€“

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

Steg 4) Jรคmfรถr temporรคr variabel med l. L==J.

Steg 5) Skriv ut numret fรถr att vara ett palindrom om villkoret รคr uppfyllt.

Steg 6) Om villkoret inte uppfyller, skriv ut numret som inte palindrom.

Steg 7) Slutet

Ovanstรฅende algoritm gรคller fรถr palindromtal i Python.

Metod 1: Palindromnummer i Python med Backward Slicing

Skรคr in baklรคnges Python innebรคr i allmรคnhet att anvรคnda delmรคngdssatser frรฅn det ursprungliga programmet. Delmรคngdssatser kan ocksรฅ anvรคnda loopar. Pythons palindromprogram kan skรคras bakรฅt.

Fรถljande pythonprogram anvรคnder en bakรฅtslinga fรถr att avgรถra om en strรคng รคr en palindrom.

Palindrom strรคngprogram i Python koda:

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

Produktion:

deed is: Palindrome

Code Fรถrklaring:

  • Ocuco-landskapet Python kod fรถrsรถker lรคgga till den tomma strรคngen b i omvรคnd ordning genom att anvรคnda lรคngden pรฅ huvudstrรคngen och Python rรคckviddsfunktion.
  • Strรคngen b sammanfogas sedan med den tomma strรคngens varv med hjรคlp av strรคngseparatorn ".

Metod 2: Palindromprogram i Python med Flagga

Flaggvariabler kan definieras i Python fรถr att identifiera palindromer. Flaggan initieras till 0. Fรถljande program illustrerar anvรคndningen av flaggparametern:

Python Code fรถr Palindromprogrammet:

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)

Produktion:

deed is: Palindrome

0

Code Fรถrklaring:

  • Rรถdingen i Python bรถrjar med ett 0-index.
  • Eftersom m initieras som -1 lรคses strรคngen frรฅn baksidan som ett negativt index.
  • For-loopen med if-satsen kontrollerar om varje tecken som bรถrjar med index 0 som finns i strรคngen matchar det omvรคnda indexet fรถr strรคngen.
  • Men om den inte matchar, initialiserar programmet flaggan som 1; annars skulle det initialiseras som 0.

Metod 3: Kontrollera palindromen Python genom att vรคnda tecken

Char-metoden anvรคnds fรถr att vรคnda en strรคng i detta palindromprogram i Python. Den ursprungliga strรคngen kontrolleras med den omvรคnda strรคngen fรถr att avgรถra om strรคngen รคr palindrom eller inte.

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

Produktion:

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 Fรถrklaring:

  • Pythons str-funktion hjรคlper till att konvertera det numeriska vรคrdeformatet till strรคngformat. Programmet kontrollerar fรถrst om vรคrde 123 รคr ett palindrom eller inte.
  • Den kontrollerar sedan vรคrdet pรฅ 101 och strรคngvรคrdet fรถr handlingen.
  • Koden kontrollerar att vรคrdet รคr ett palindrom fรถr bรฅde numeriska format och strรคngformat.

Metod 4: Hur man checkar in Palindrome Python med hjรคlp av Character Matching

I den hรคr palindrommetoden kontrollerar programmet om varje tecken i strรคngen matchar den omvรคnda strรคngen genom att anvรคnda funktionen for loop, range- och Len-funktion.

Python koda:

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

Produktion:

Not Palindrome

Code Fรถrklaring:

  • En anvรคndardefinierad funktion mรคrkt som Palindrome Comparator kontrollerar om vรคrdet รคr en strรคng eller inte.
  • Programmet jรคmfรถr den ursprungliga strรคngen och den omvรคnda delen av den ursprungliga strรคngen med hjรคlp av kriterierna original[i]!= original[lรคngd(original) โ€“ i โ€“ 1].
  • Ovanstรฅende program anvรคnder sig av lรคngdtekniken fรถr att bestรคmma lรคngden pรฅ strรคngen.

Metod 5: Palindrom in Python med hjรคlp av rekursion

In Python, innebรคr rekursion att funktionen anropar sig sjรคlv upprepade gรฅnger och enligt en specifik uppsรคttning kriterier. Pรฅ sรฅ sรคtt kan problemet delas upp i mindre med samma funktionsstruktur. Genom att anvรคnda logik fรถr rekursionsprogrammering kan palindromstrรคngar ocksรฅ kontrolleras

Python koda:

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

Produktion:

12321 is: Palindrome

Code Fรถrklaring:

  • Programmet anvรคnder sig av en anvรคndardefinierad funktion som rekursivt anropar sig sjรคlv.
  • Det ursprungliga numret bryts ner och dess restvรคrde lรคggs till det motsatta vรคrdet.
  • Det motsatta vรคrdet multipliceras med 10 fรถrst innan det adderas med det รฅterstรฅende vรคrdet.

Metod 6: Hur man anvรคnder While Loop fรถr att kontrollera palindromen

En while-loop utfรถr exekvering av kod pรฅ en iterativ basis tills det tillรคmpade villkoret รคr sant.

  • Den iterativa metoden kan anvรคndas fรถr att kontrollera om heltalsvรคrdet รคr palindrom.
  • Ocuco-landskapet Python Programmet anvรคnder sig av temporรคra nummer och modulo-operatorerna.

Python koda:

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

Produktion:

Palindrome

Code Fรถrklaring:

  • Programmet anvรคnder en while-loop som kontrollerar om det tillfรคlliga numret รคr mindre รคn noll.
  • Modulo-operatorn berรคknar resten av det ursprungliga numret.
  • Det ursprungliga talet delas med 10.
  • Den omvรคnda parametern berรคknas genom att multiplicera med 10.
  • Det resulterande talet lรคggs till resten.
  • Ovanstรฅende program kontrollerar det ursprungliga numret och det omvรคnda numret fรถr att klassificera det som palindrom eller inte.

Vanliga frรฅgor

Jรคmfรถr vรคrdet med dess omvรคnda vรคrde med hjรคlp av s == s[::-1], och konvertera fรถrst tal med str(). Matchande riktningar innebรคr en palindrom.

Tvรฅpekarmetoden sparar minne med O(n) tid och O(1) mellanrum, men skivomvรคndning รคr vanligtvis snabbast i C.Python.

En pekare bรถrjar lรคngst fram, en lรคngst ut; de jรคmfรถrs inรฅt. Matchande par tills de mรถts bekrรคftar ett palindrom.

Anvรคnd smรฅ bokstรคver och behรฅll endast alfanumeriska tecken med isalnum(), jรคmfรถr sedan med baksidan. Mellanrum och versaler slutar spela nรฅgon roll.

Reverse en strรคng med slice s[::-1], reversed() plus โ€œโ€.join(), eller en fรถregรฅende loop, och jรคmfรถr den sedan med originalet.

Ja. Ett enskilt tecken och en tom strรคng lรคser samma vรคrde omvรคnt, sรฅ s == s[::-1] returnerar True.

Reversal logik driver NLP-fรถrbehandling, bioinformatiska DNA-kontroller och funktionsutveckling. Bibliotek som numpy vektorisera dessa symmetritester fรถr maskininlรคrning.

Ja. GitHub Copilot och liknande AI-assistenter genererar slicing-, tvรฅpekar-, rekursions- eller loopversioner frรฅn en prompt. Granska alltid edge-fall fรถrst.

Sammanfatta detta inlรคgg med: