Program palindromowy w Python

⚡ Inteligentne podsumowanie

Programy palindromowe w Python Sprawdzają, czy ciąg znaków lub liczba czyta się tak samo od początku do końca. Typowe metody obejmują wycinanie wsteczne, porównywanie flag, odwracanie znaków, dopasowywanie znaków, rekurencję oraz techniki pętli while dla wartości tekstowych i liczbowych.

  • 🔁 Definicja: Palindrom czyta się tak samo od początku do końca, niezależnie od tego, czy jest to słowo, czy liczba.
  • ✂️. Krojenie i flagi: Reverse sznurka z pętlą lub wczesnego wychwytywania niezgodności za pomocą flagi.
  • 🔄 Rekurencja i pętle: Wywołania rekurencyjne i pętle while odwracają liczby za pomocą dzielenia modulo i całkowitego.
  • Wydajność: Metoda dwuwskaźnikowa porównuje końce skierowane do wewnątrz w czasie O(n) i przestrzeni O(1).
  • 🤖 Znaczenie sztucznej inteligencji: Logika palindromów wspomaga wstępne przetwarzanie języka naturalnego, sprawdzanie DNA i ćwiczenie wywiadów z wykorzystaniem uczenia maszynowego.

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 jego odwrotność, korzystając z kryteriów oryginał[i]!= oryginał[len(oryginalny) – 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.

FAQ

Porównaj wartość z jej odwrotnością, używając s == s[::-1], konwertując najpierw liczby za pomocą str(). Zgodne kierunki oznaczają palindrom.

Metoda dwuwskaźnikowa oszczędza pamięć w czasie O(n) i przestrzeni O(1), ale odwrócenie wycinka jest zwykle najszybsze w języku CPython.

Jeden wskaźnik zaczyna się z przodu, drugi na końcu; porównują się do wewnątrz. Dopasowywanie par, aż się spotkają, potwierdza palindrom.

Zamień tekst na małe litery i zachowaj tylko znaki alfanumeryczne za pomocą funkcji isalnum(), a następnie porównaj z jego odwrotnością. Odstępy i wielkość liter przestają mieć znaczenie.

Reverse ciąg z wycinkiem s[::-1], reversed() plus “”.join() lub poprzedzającą pętlą, a następnie porównaj go z oryginałem.

Tak. Pojedynczy znak i pusty ciąg znaków czytane odwrócone dają ten sam wynik, więc s == s[::-1] zwraca wartość True.

RevLogika ersal napędza wstępne przetwarzanie języka naturalnego, bioinformatyczne sprawdzanie DNA i inżynierię cech. Biblioteki takie jak numpy zwektoryzować te testy symetrii na potrzeby uczenia maszynowego.

Tak. GitHub Copilot i podobne asystenty AI generują wersje z podziałem na segmenty, z dwoma wskaźnikami, rekurencją lub pętlą z poziomu wiersza poleceń. Zawsze najpierw sprawdzaj przypadki brzegowe.

Podsumuj ten post następująco: