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

