Program Palindrom v Python

V ฤem je program Palindrom Python?

Palindrom mลฏลพe bรฝt definovรกn jako ล™etฤ›zec nebo ฤรญslo, kterรฉ zobrazuje stejnou hodnotu, kdyลพ je jeho pozice obrรกcena. V jednoduลกลกรญm smyslu zลฏstรกvรก pล™i obrรกcenรญ nezmฤ›nฤ›n.

Example: deed, 101

Kdyลพ jsou porovnรกny obrรกcenรฉ slovo a skuteฤnรฉ slovo (ฤรญslo nebo ล™etฤ›zec), vรฝsledkem je stejnรฝ vรฝsledek.

Palindrom dovnitล™ Python

Typy palindromu

In Python jazyk, Palindrom je tล™รญ typลฏ, jak je uvedeno nรญลพe:

  • Vรญceslovnรฝ palindrom: Jednรก se o kombinaci vรญce slov, kde hodnota pลฏvodnรญho a obrรกcenรฉho slova je stejnรก.
  • Jednoslovnรฝ palindrom: Jednรก se o jedinรฉ slovo, jehoลพ hodnota pลฏvodnรญho a obrรกcenรฉho slova je stejnรก.
  • Palindrom ฤรญsel: Toto je ฤรญslo, kde jsou hodnoty pลฏvodnรญho a obrรกcenรฉho ฤรญsla stejnรฉ. Danรฝ vstup zลฏstรกvรก stejnรฝ buฤ z pล™ednรญ nebo ze zadnรญ strany.

Algoritmus pro palindromovรฉ ฤรญslo v Python

Pro kontrolu ฤรญsla palindromu lze pouลพรญt nรกsledujรญcรญ algoritmus:

Krok 1) Proveฤte deklaraci promฤ›nnรฉ jako 'Iโ€œ a pล™eฤtฤ›te si promฤ›nnou.

Krok 2) Pล™iล™adit 'I' do doฤasnรฉ promฤ›nnรฉ j. i=j

Krok 3) Proveฤte smyฤku podle nรญลพe uvedenรฝch pokynลฏ: โ€“

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

Krok 4) Porovnejte doฤasnou promฤ›nnou s l. L==J.

Krok 5) Pokud je podmรญnka splnฤ›na, vytisknฤ›te ฤรญslo jako palindrom.

Krok 6) Pokud podmรญnka nevyhovuje, vytisknฤ›te ฤรญslo jako ne palindrom.

Krok 7) Konec

Vรฝลกe uvedenรฝ algoritmus platรญ pro ฤรญsla palindromลฏ v Python.

Metoda 1: Palindromovรฉ ฤรญslo v Python pomocรญ zpฤ›tnรฉho krรกjenรญ

Zpฤ›tnรฉ krรกjenรญ Python obecnฤ› zahrnuje pouลพitรญ pล™รญkazลฏ podmnoลพiny z pลฏvodnรญho programu. Pล™รญkazy podmnoลพiny mohou takรฉ pouลพรญvat smyฤky. PythonProgram palindromu lze zpฤ›tnฤ› krรกjet.

Nรกsledujรญcรญ program python pouลพรญvรก zpฤ›tnou smyฤku k urฤenรญ, zda je ล™etฤ›zec palindrom.

ล˜etฤ›zcovรฝ program Palindrom v Python kรณd:

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

Vรฝstup:

deed is: Palindrome

Vysvฤ›tlenรญ kรณdu:

  • Jedno Python kรณd se pokusรญ pล™ipojit prรกzdnรฝ ล™etฤ›zec b v opaฤnรฉm poล™adรญ pomocรญ dรฉlky hlavnรญho ล™etฤ›zce a Python funkce rozsahu.
  • ล˜etฤ›zec b je pak spojen s prรกzdnรฝm ล™etฤ›zcem rev pomocรญ oddฤ›lovaฤe ล™etฤ›zcลฏ ".

Metoda 2: Palindromovรฝ program v Python pomocรญ Flag

Pล™รญznakovรฉ promฤ›nnรฉ lze definovat v Python k identifikaci palindromลฏ. Pล™รญznak je inicializovรกn na 0. Nรกsledujรญcรญ program ilustruje pouลพitรญ parametru pล™รญznak:

Python Kรณd pro program 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)

Vรฝstup:

deed is: Palindrome

0

Vysvฤ›tlenรญ kรณdu:

  • V charu Python zaฤรญnรก indexem 0.
  • Protoลพe m je inicializovรกno jako -1, ล™etฤ›zec se ฤte z opaฤnรฉ strany jako zรกpornรฝ index.
  • Smyฤka for s pล™รญkazem if kontroluje, zda se kaลพdรฝ znak zaฤรญnajรญcรญ indexem 0 pล™รญtomnรฝ v ล™etฤ›zci shoduje s reverznรญm indexem ล™etฤ›zce.
  • Pokud se vลกak neshoduje, program inicializuje pล™รญznak jako 1; jinak by to inicializovalo jako 0.

Metoda 3: Zkontrolujte Palindrome Python obrรกcenรญm charakteru

Metoda char se pouลพรญvรก k obrรกcenรญ ล™etฤ›zce v tomto programu palindromu Python. Pลฏvodnรญ ล™etฤ›zec je kontrolovรกn s obrรกcenรฝm ล™etฤ›zcem, aby se urฤilo, zda je ล™etฤ›zec palindrom nebo ne.

Python Programovรฝ kรณd Palindromu:

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

Vรฝstup:

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

Vysvฤ›tlenรญ kรณdu:

  • PythonFunkce str pomรกhรก pล™evรฉst formรกt ฤรญselnรฉ hodnoty na formรกt ล™etฤ›zce. Program nejprve zkontroluje, zda hodnota 123 je palindrom nebo ne.
  • Potรฉ zkontroluje hodnotu 101 a ล™etฤ›zcovou hodnotu listiny.
  • Kรณd kontroluje, zda je hodnota palindrom pro ฤรญselnรฝ i ล™etฤ›zcovรฝ formรกt.

Metoda 4: Jak zkontrolovat Palindrome Python pomocรญ funkce Character Matching

V tรฉto metodฤ› palindromu program kontroluje, zda se kaลพdรฝ znak v ล™etฤ›zci shoduje s obrรกcenรฝm ล™etฤ›zcem pomocรญ cyklu for, funkce rozsahu a funkce Len.

Python kรณd:

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

Vรฝstup:

Not Palindrome

Vysvฤ›tlenรญ kรณdu:

  • Uลพivatelem definovanรก funkce oznaฤenรก jako Palindrome Comparator kontroluje, zda je hodnota ล™etฤ›zec nebo ne.
  • Program porovnรกvรก pลฏvodnรญ ล™etฤ›zec a rub pลฏvodnรญho ล™etฤ›zce pomocรญ kritรฉria original[i]!= original[len(original) โ€“ i โ€“ 1].
  • Vรฝลกe uvedenรฝ program vyuลพรญvรก techniku โ€‹โ€‹dรฉlky k urฤenรญ dรฉlky ล™etฤ›zce.

Metoda 5: Palindrom in Python pomocรญ rekurze

In Python, rekurze znamenรก, ลพe funkce volรก sama sebe opakovanฤ› a podle specifickรฉ sady kritรฉriรญ. Tรญmto zpลฏsobem lze problรฉm rozdฤ›lit na menลกรญ pomocรญ stejnรฉ funkฤnรญ struktury. Pomocรญ logiky rekurznรญho programovรกnรญ lze takรฉ kontrolovat palindromovรฉ ล™etฤ›zce

Python kรณd:

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

Vรฝstup:

12321 is: Palindrome

Vysvฤ›tlenรญ kรณdu:

  • Program vyuลพรญvรก uลพivatelsky definovanou funkci, kterรก se rekurzivnฤ› volรก.
  • Pลฏvodnรญ ฤรญslo se rozloลพรญ a jeho zลฏstatkovรก hodnota se pล™iฤte k opaฤnรฉ hodnotฤ›.
  • Opaฤnรก hodnota se nejprve vynรกsobรญ 10 a potรฉ se pล™idรก zbรฝvajรญcรญ hodnota.

Metoda 6: Jak pouลพรญvat While Loop ke kontrole Palindromu

Smyฤka while provรกdรญ provรกdฤ›nรญ kรณdu na iterativnรญm zรกkladฤ›, dokud nenรญ pouลพitรก podmรญnka pravdivรก.

  • Iteraฤnรญ metodu lze pouลพรญt ke kontrole, zda je celoฤรญselnรก hodnota palindrom.
  • Jedno Python program vyuลพรญvรก doฤasnรก ฤรญsla a operรกtory modulo.

Python kรณd:

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

Vรฝstup:

Palindrome

Vysvฤ›tlenรญ kรณdu:

  • Program vyuลพรญvรก smyฤku while, kterรก kontroluje, zda je doฤasnรฉ ฤรญslo menลกรญ neลพ nula.
  • Operรกtor modulo vypoฤรญtรก zbytek pลฏvodnรญho ฤรญsla.
  • Pลฏvodnรญ ฤรญslo se vydฤ›lรญ 10.
  • Opaฤnรฝ parametr se vypoฤรญtรก vynรกsobenรญm 10.
  • Vรฝslednรฉ ฤรญslo se pล™iฤte ke zbytku.
  • Vรฝลกe uvedenรฝ program zkontroluje pลฏvodnรญ ฤรญslo a opaฤnรฉ ฤรญslo, aby je klasifikoval jako palindrom nebo ne.

Zรกvฤ›r

  • Palindrom je hodnota pล™i srovnรกnรญ ze zpฤ›tnรฉho smฤ›ru a dopล™ednรฝ smฤ›r je stejnรฝ. Pouลพรญvรก se v rลฏznรฝch matematickรฝch hรกdankรกch.
  • Lze pล™ijmout nฤ›kolik zpลฏsobลฏ Python porovnat, zda je hodnota palindrom nebo ne. Pouลพรญvanรฉ techniky jsou: โ€“ Zpฤ›tnรฉ krรกjenรญ, Porovnรกvรกnรญ znakลฏ, Rekurze, Pouลพitรญ smyฤek, funkce rev, Len a str, pล™eddefinovanรฉ funkce, rekurze atd.

Shrลˆte tento pล™รญspฤ›vek takto: