Palindromprogram i Python
Hva er Palindrome-programmet i Python?
Et palindrom kan defineres som en streng eller et tall som viser samme verdi når posisjonen er reversert. I en enklere forstand forblir den uendret når den reverseres.
Example: deed, 101
Når det omvendte ordet og det faktiske ordet (et tall eller en streng) sammenlignes, gir de samme resultat.
Typer palindrom
In Python Språk, Palindrom er av tre typer, som listet nedenfor:
- Flerords palindrom: Dette er en kombinasjon av flere ord hvor verdien av de originale og omvendte ordene er den samme.
- Enkeltords palindrom: Dette er et enkelt ord hvor verdien av de originale og omvendte ordene er den samme.
- Nummer palindrom: Dette er et tall der de opprinnelige og omvendte tallenes verdier er de samme. Den gitte inngangen forblir den samme enten forover eller fra baksiden.
Algoritme for et palindromnummer i Python
Følgende algoritme kan brukes for å sjekke palindromnummeret:
Trinn 1) Utfør variabeldeklarasjon som 'I' og les variabelen.
Trinn 2) Tilordne 'I' til midlertidig variabel j. i=j
Trinn 3) Utfør løkken med instruksjonene som vist nedenfor: –
- M=I % 10
- L=L x 10 + M
- I = I / 10
Trinn 4) Sammenlign midlertidig variabel med l. L==J.
Trinn 5) Skriv ut nummeret for å være et palindrom hvis betingelsen er oppfylt.
Trinn 6) Hvis betingelsen ikke tilfredsstiller, skriv ut nummeret som ikke palindrom.
Trinn 7) Slutt
Algoritmen ovenfor gjelder for palindromtall i Python.
Metode 1: Palindromnummer i Python ved hjelp av bakoverskjæring
Skjæring bakover Python innebærer vanligvis å bruke delsettsetninger fra det originale programmet. Delsettsetninger kan også bruke loops. Python's palindromprogram kan kuttes bakover.
Følgende python-program bruker en bakoversløyfe for å bestemme om en streng er et palindrom.
Palindrom strengprogram i Python kode:
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")
Utgang:
deed is: Palindrome
Kodeforklaring:
- Ocuco Python kode prøver å legge til den tomme strengen b i omvendt rekkefølge ved å bruke lengden på hovedstrengen og Python rekkeviddefunksjon.
- Strengen b kobles så sammen med den tomme strengen rev ved hjelp av strengseparatoren ".
Metode 2: Palindromprogram i Python ved å bruke flagg
Flaggvariabler kan defineres i Python å identifisere palindromer. Flagg initialiseres til 0. Følgende program illustrerer bruken av flaggparameter:
Python Kode for Palindrome-programmet:
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)
Utgang:
deed is: Palindrome 0
Kodeforklaring:
- Røyen inn Python begynner med en 0-indeks.
- Siden m er initialisert som -1, leses strengen fra baksiden som en negativ indeks.
- For-løkken med if-setningen sjekker om hvert tegn som starter med indeks 0 i strengen samsvarer med den omvendte indeksen til strengen.
- Men hvis det ikke stemmer, initialiserer programmet flagget som 1; ellers vil den initialisere den som 0.
Metode 3: Sjekk palindrom inn Python ved å reversere tegn
Char-metoden brukes til å snu en streng i dette palindromprogrammet i Python. Den opprinnelige strengen kontrolleres med den omvendte strengen for å avgjøre om strengen er palindrom eller ikke.
Python Palindrome programkode:
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))
Utgang:
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
Kodeforklaring:
- Pythonsin str-funksjon hjelper til med å konvertere numerisk verdiformat til strengformat. Programmet sjekker først om verdi 123 er et palindrom eller ikke.
- Den sjekker deretter for verdien av 101 og strengverdien til skjøtet.
- Koden sjekker om verdien er et palindrom for både numeriske formater og strengformater.
Metode 4: Slik sjekker du Palindrome inn Python ved å bruke Character Matching
I denne palindrommetoden sjekker programmet om hvert tegn i strengen samsvarer med den omvendte strengen ved å bruke for loop, range-funksjonen og Len-funksjonen.
Python kode:
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")
Utgang:
Not Palindrome
Kodeforklaring:
- En brukerdefinert funksjon merket som Palindrome Comparator sjekker om verdien er en streng eller ikke.
- Programmet sammenligner den opprinnelige strengen og omvendt av den originale strengen ved å bruke kriterier original[i]!= original[len(original) – i – 1].
- Programmet ovenfor bruker lengdeteknikken for å bestemme lengden på strengen.
Metode 5: Palindrom i Python ved hjelp av rekursjon
In Python, betyr rekursjon at funksjonen kaller seg selv gjentatte ganger og i henhold til et spesifikt sett med kriterier. På denne måten kan problemet brytes ned til mindre ved hjelp av samme funksjonsstruktur. Ved å bruke rekursjonsprogrammeringslogikk kan palindromstrenger også sjekkes
Python kode:
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")
Utgang:
12321 is: Palindrome
Kodeforklaring:
- Programmet benytter seg av en brukerdefinert funksjon som rekursivt kaller seg selv.
- Det opprinnelige tallet brytes ned, og dets restverdi legges til den motsatte verdien.
- Den motsatte verdien multipliseres med 10 først før den legges til med resten.
Metode 6: Hvordan bruke While Loop for å sjekke palindromen
En while-løkke utfører utførelse av kode på en iterativ basis til betingelsen som brukes er sann.
- Den iterative metoden kan brukes til å sjekke om heltallsverdien er palindrom.
- Ocuco Python programmet bruker midlertidige tall og modulo-operatorene.
Python kode:
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")
Utgang:
Palindrome
Kodeforklaring:
- Programmet bruker en while-løkke som sjekker om det midlertidige nummeret er mindre enn null.
- Modulo-operatoren beregner resten av det opprinnelige tallet.
- Det opprinnelige tallet blir delt på 10.
- Omvendt parameter beregnes ved å multiplisere med 10.
- Det resulterende tallet legges til resten.
- Programmet ovenfor sjekker det opprinnelige nummeret og det motsatte tallet for å klassifisere det som palindrom eller ikke.
Konklusjon
- Palindrom er en verdi sammenlignet fra retningen bakover, og retningen fremover kommer til å være den samme. Den brukes i ulike matematiske gåter.
- Flere måter kan tas i bruk Python å sammenligne om en verdi er et palindrom eller ikke. Teknikkene som brukes er: – Bakoverskjæring, Karaktertilpasning, Rekursjon, Bruk av loops, rev, Len og str-funksjoner, forhåndsdefinerte funksjoner, rekursjoner osv.