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
Wyjaśnienie kodu:
- Kolekcja 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 Kod programu Palindrom:
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
Wyjaśnienie kodu:
- 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 Kod programu Palindrom:
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
Wyjaśnienie kodu:
- 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
Wyjaśnienie kodu:
- 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
Wyjaśnienie kodu:
- 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.
- Kolekcja 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
Wyjaśnienie kodu:
- 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.
Podsumowanie
- 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.