Program palindromowy w Python

W czym jest program palindromowy Python?

Palindrom moลผna zdefiniowaฤ‡ jako ciฤ…g znakรณw lub liczbฤ™, ktรณra po odwrรณceniu swojej pozycji wyล›wietla tฤ™ samฤ… wartoล›ฤ‡. W prostszym sensie pozostaje niezmieniony po odwrรณceniu.

Example: deed, 101

Kiedy porรณwnuje siฤ™ sล‚owo odwrotne z rzeczywistym sล‚owem (liczbฤ… lub ciฤ…giem znakรณw), dajฤ… ten sam wynik.

Palindrom w Python

Rodzaje palindromu

In Python jฤ™zyk, Palindrom jest trzech typรณw, jak wymieniono poniลผej:

  • Palindrom wielowyrazowy: Jest to kombinacja wielu sล‚รณw, w ktรณrej wartoล›ฤ‡ sล‚รณw oryginalnych i odwrรณconych jest taka sama.
  • Palindrom jednowyrazowy: Jest to pojedyncze sล‚owo, w ktรณrym wartoล›ฤ‡ sล‚รณw oryginalnych i odwrรณconych jest taka sama.
  • Palindrom liczbowy: Jest to liczba, w ktรณrej wartoล›ci liczb oryginalnych i odwrรณconych sฤ… takie same. Podane dane wejล›ciowe pozostajฤ… takie same zarรณwno od przodu, jak i od tyล‚u.

Algorytm obliczania liczby palindromowej w Python

Aby sprawdziฤ‡ liczbฤ™ palindromicznฤ…, moลผna zastosowaฤ‡ nastฤ™pujฤ…cy algorytm:

Krok 1) Wykonaj deklaracjฤ™ zmiennej jako โ€žI' i odczytaj zmiennฤ….

Krok 2) Przypisz 'I' do zmiennej tymczasowej j. ja=j

Krok 3) Wykonaj pฤ™tlฤ™ zgodnie z poniลผszymi instrukcjami: โ€“

  • M=I% 10
  • L=dล‚. x 10 + M
  • Ja = Ja / 10

Krok 4) Porรณwnaj zmiennฤ… tymczasowฤ… z l. L==J.

Krok 5) Jeล›li warunek jest speล‚niony, wypisz liczbฤ™ jako palindrom.

Krok 6) Jeลผeli warunek nie jest speล‚niony, wypisz liczbฤ™ jako niepalindromowฤ….

Krok 7) Koniec

Powyลผszy algorytm stosuje siฤ™ do liczb palindromowych w Python.

Metoda 1: Liczba palindromowa w Python za pomocฤ… ciฤ™cia wstecznego

Wcinanie do tyล‚u Python generalnie wymaga uลผycia instrukcji podzbioru z oryginalnego programu. Instrukcje podzbiorรณw mogฤ… rรณwnieลผ wykorzystywaฤ‡ pฤ™tle. Pythonprogram palindromowy moลผna pokroiฤ‡ wstecz.

Poniลผszy program w jฤ™zyku Python wykorzystuje pฤ™tlฤ™ wstecznฤ… w celu ustalenia, czy dany ciฤ…g znakรณw jest palindromem.

Program ciฤ…gรณw palindromowych w Python kod:

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

Wyjล›cie:

deed is: Palindrome

Code Wyjaล›nienie:

  • Python kod prรณbuje dodaฤ‡ pusty ciฤ…g b w odwrotnej kolejnoล›ci, uลผywajฤ…c dล‚ugoล›ci ciฤ…gu gล‚รณwnego i Python funkcja zasiฤ™gu.
  • Nastฤ™pnie ciฤ…g b jest ล‚ฤ…czony z pustym ciฤ…giem rev za pomocฤ… separatora ciฤ…gรณw ".

Metoda 2: Program palindromowy w Python za pomocฤ… flagi

Zmienne flagowe moลผna zdefiniowaฤ‡ w Python do identyfikacji palindromรณw. Flaga jest inicjowana na 0. Poniลผszy program ilustruje uลผycie parametru flagi:

Python Code dla programu Palindrome:

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)

Wyjล›cie:

deed is: Palindrome

0

Code Wyjaล›nienie:

  • Znak w Python zaczyna siฤ™ od indeksu 0.
  • Poniewaลผ m jest inicjowane jako -1, ciฤ…g znakรณw jest odczytywany od drugiej strony jako indeks ujemny.
  • Pฤ™tla for z instrukcjฤ… if sprawdza, czy kaลผdy znak w ciฤ…gu znakรณw rozpoczynajฤ…cy siฤ™ od indeksu 0 pasuje do indeksu odwrotnego ciฤ…gu.
  • Jeล›li jednak nie jest to zgodne, program inicjalizuje flagฤ™ wartoล›ciฤ… 1; w przeciwnym wypadku inicjalizowaล‚by jฤ… wartoล›ciฤ… 0.

Metoda 3: Sprawdลบ Palindrom Python przez odwrรณcenie znaku

Metoda char jest uลผywana do odwrรณcenia ciฤ…gu w tym programie palindromowym PythonOryginalny ciฤ…g znakรณw sprawdzany jest przy uลผyciu ciฤ…gu odwrotnego, aby ustaliฤ‡, czy ciฤ…g znakรณw jest palindromem, czy nie.

Python Program palindromowy 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))

Wyjล›cie:

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 Wyjaล›nienie:

  • PythonFunkcja str pomaga przekonwertowaฤ‡ format wartoล›ci liczbowych na format ciฤ…gu. Program najpierw sprawdza, czy wartoล›ฤ‡ 123 jest palindromem, czy nie.
  • Nastฤ™pnie sprawdza wartoล›ฤ‡ 101 i wartoล›ฤ‡ ciฤ…gu aktu.
  • Kod sprawdza, czy wartoล›ฤ‡ jest palindromem zarรณwno w przypadku formatรณw liczbowych, jak i ล‚aล„cuchowych.

Metoda 4: Jak sprawdziฤ‡ Palindrom Python za pomocฤ… dopasowywania znakรณw

W tej metodzie palindromowej program sprawdza, czy kaลผdy znak w ciฤ…gu pasuje do ciฤ…gu odwrotnego, uลผywajฤ…c pฤ™tli for, funkcji zakresu i funkcji Len.

Python kod:

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

Wyjล›cie:

Not Palindrome

Code Wyjaล›nienie:

  • Funkcja zdefiniowana przez uลผytkownika oznaczona jako Palindrom Comparator sprawdza, czy wartoล›ฤ‡ jest ciฤ…giem znakรณw, czy nie.
  • Program porรณwnuje oryginalny ciฤ…g znakรณw i odwrotnฤ… stronฤ™ oryginalnego ciฤ…gu znakรณw, uลผywajฤ…c kryteria oryginaล‚[i]!= oryginaล‚[len(oryginaล‚) โ€“ i โ€“ 1].
  • Powyลผszy program wykorzystuje technikฤ™ dล‚ugoล›ci do okreล›lenia dล‚ugoล›ci ล‚aล„cucha.

Metoda 5: Palindrom w Python za pomocฤ… rekurencji

In Pythonrekurencja oznacza, ลผe โ€‹โ€‹funkcja wywoล‚uje siฤ™ wielokrotnie i wedล‚ug okreล›lonego zestawu kryteriรณw. W ten sposรณb problem moลผna podzieliฤ‡ na mniejsze, korzystajฤ…c z tej samej struktury funkcji. Stosujฤ…c logikฤ™ programowania rekursyjnego, moลผna rรณwnieลผ sprawdziฤ‡ ciฤ…gi palindromowe

Python kod:

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

Wyjล›cie:

12321 is: Palindrome

Code Wyjaล›nienie:

  • Program korzysta z funkcji zdefiniowanej przez uลผytkownika, ktรณra wywoล‚uje siฤ™ rekurencyjnie.
  • Oryginalna liczba jest rozkล‚adana, a jej wartoล›ฤ‡ rezydualna jest dodawana do wartoล›ci przeciwnej.
  • Wartoล›ฤ‡ przeciwnฤ… mnoลผy siฤ™ najpierw przez 10, a nastฤ™pnie dodaje do reszty.

Metoda 6: Jak uลผywaฤ‡ pฤ™tli While do sprawdzania palindromu

Pฤ™tla while wykonuje kod w sposรณb iteracyjny, dopรณki zastosowany warunek nie stanie siฤ™ prawdziwy.

  • Metodฤ™ iteracyjnฤ… moลผna zastosowaฤ‡ do sprawdzenia, czy wartoล›ฤ‡ caล‚kowita jest palindromem.
  • Python Program wykorzystuje liczby tymczasowe i operatory modulo.

Python kod:

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

Wyjล›cie:

Palindrome

Code Wyjaล›nienie:

  • Program wykorzystuje pฤ™tlฤ™ while, ktรณra sprawdza, czy liczba tymczasowa jest mniejsza od zera.
  • Operator modulo oblicza resztฤ™ z oryginalnej liczby.
  • Oryginalna liczba jest dzielona przez 10.
  • Parametr odwrotny oblicza siฤ™, mnoลผฤ…c przez 10.
  • Otrzymanฤ… liczbฤ™ dodaje siฤ™ do reszty.
  • Powyลผszy program sprawdza liczbฤ™ pierwotnฤ… i liczbฤ™ odwrotnฤ…, aby sklasyfikowaฤ‡ jฤ… jako palindrom lub nie.

Wniosek

  • Palindrom jest wartoล›ciฤ… porรณwnywanฤ… od kierunku do tyล‚u, a kierunek do przodu jest taki sam. Jest uลผywany w rรณลผnych zagadkach matematycznych.
  • Moลผna zastosowaฤ‡ kilka sposobรณw Python aby porรณwnaฤ‡, czy wartoล›ฤ‡ jest palindromem, czy nie. Stosowane techniki to: โ€“ Wsteczne ciฤ™cie, Dopasowywanie znakรณw, Rekurencja, Uลผycie pฤ™tli, funkcji rev, Len i str, wstฤ™pnie zdefiniowanych funkcji, rekurencji itp.

Podsumuj ten post nastฤ™pujฤ…co: