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

