Πρόγραμμα Palindrome σε Python

⚡ Έξυπνη Σύνοψη

Προγράμματα παλινδρομίας στο Python Ελέγξτε αν μια συμβολοσειρά ή ένας αριθμός διαβάζεται το ίδιο προς τα εμπρός και προς τα πίσω. Συνήθεις προσεγγίσεις περιλαμβάνουν την ανάποδη τεμαχισμό, τη σύγκριση σημαιών, την αντιστροφή χαρακτήρων, την αντιστοίχιση χαρακτήρων, την αναδρομή και τεχνικές επανάληψης while τόσο για τιμές κειμένου όσο και για αριθμητικές τιμές.

  • 🔁 Ορισμός: Ένα παλίνδρομο διαβάζεται το ίδιο προς τα εμπρός και προς τα πίσω, είτε πρόκειται για λέξη είτε για αριθμό.
  • ️ Τεμαχισμός και σημαίες: Reverse τη συμβολοσειρά με μια επανάληψη ή εντοπίστε τυχόν ασυμφωνίες νωρίς με μια σημαία.
  • 🔄 Αναδρομή και βρόχοι: Οι αναδρομικές κλήσεις και οι βρόχοι while αντιστρέφουν τους αριθμούς χρησιμοποιώντας modulo και ακέραιη διαίρεση.
  • ⚡ Αποδοτικότητα: Η μέθοδος δύο δεικτών συγκρίνει τα άκρα προς τα μέσα σε χρόνο O(n) και χώρο O(1).
  • 🤖 Συνάφεια με την Τεχνητή Νοημοσύνη: Η παλινδρομική λογική βοηθά στην προεπεξεργασία NLP, στους ελέγχους DNA και στην πρακτική των συνεντεύξεων μηχανικής μάθησης.

Πρόγραμμα Palindrome σε Python

Τι περιλαμβάνει το πρόγραμμα Palindrome Python?

Ένα Palindrome μπορεί να οριστεί ως μια συμβολοσειρά ή ένας αριθμός που εμφανίζει την ίδια τιμή όταν η θέση του αντιστρέφεται. Με μια απλούστερη έννοια, παραμένει αναλλοίωτο όταν αντιστρέφεται.

Example: deed, 101

Όταν η αντίστροφη λέξη και η πραγματική λέξη, (ένας αριθμός ή μια συμβολοσειρά) συγκρίνονται, παράγουν το ίδιο αποτέλεσμα.

Τύποι Palindrome

In Python Γλώσσα, Το Palindrome είναι τριών τύπων, όπως αναφέρονται παρακάτω:

  • Πάλινδρομο πολλαπλών λέξεων: Αυτός είναι ένας συνδυασμός πολλών λέξεων όπου η αξία της αρχικής και της αντίστροφης λέξης είναι η ίδια.
  • Μονολεκτικό παλίνδρομο: Αυτή είναι μια μεμονωμένη λέξη όπου η αξία της αρχικής και της αντίστροφης λέξης είναι η ίδια.
  • Αριθμός παλίνδρομο: Αυτός είναι ένας αριθμός όπου οι τιμές του αρχικού και του αντίστροφου αριθμού είναι ίδιες. Η δεδομένη είσοδος παραμένει η ίδια είτε από την εμπρός είτε από την πίσω πλευρά.

Αλγόριθμος για έναν αριθμό Palindrome in Python

Ο ακόλουθος αλγόριθμος μπορεί να εφαρμοστεί για τον έλεγχο του αριθμού παλίνδρομου:

Βήμα 1) Εκτελέστε δήλωση μεταβλητής ως 'Iκαι διαβάστε τη μεταβλητή.

Βήμα 2) Εκχώρηση 'I' στην προσωρινή μεταβλητή j. i=j

Βήμα 3) Εκτελέστε το βρόχο με τις οδηγίες όπως φαίνεται παρακάτω: –

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

Βήμα 4) Συγκρίνετε την προσωρινή μεταβλητή με τη l. L==J.

Βήμα 5) Εκτυπώστε τον αριθμό για να είναι παλίνδρομο εάν η συνθήκη ικανοποιείται.

Βήμα 6) Εάν η συνθήκη δεν ικανοποιεί, εκτυπώστε τον αριθμό ως μη παλίνδρομο.

Βήμα 7) Τέλος

Ο παραπάνω αλγόριθμος ισχύει για παλίνδρομους αριθμούς στο Python.

Μέθοδος 1: Αριθμός Palindrome in Python χρησιμοποιώντας το Backward Slicing

Κόψιμο προς τα πίσω Python γενικά περιλαμβάνει τη χρήση δηλώσεων υποσυνόλου από το αρχικό πρόγραμμα. Οι δηλώσεις υποσυνόλου μπορούν επίσης να χρησιμοποιούν βρόχους. PythonΤο πρόγραμμα palindrome του 's μπορεί να τεμαχιστεί προς τα πίσω.

Το ακόλουθο πρόγραμμα python χρησιμοποιεί έναν βρόχο προς τα πίσω για να προσδιορίσει εάν μια συμβολοσειρά είναι παλίνδρομο.

Πρόγραμμα χορδών Palindrome σε Python code:

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

Παραγωγή:

deed is: Palindrome

Code Επεξήγηση:

  • The Python Ο κώδικας προσπαθεί να προσαρτήσει την κενή συμβολοσειρά b με αντίστροφη σειρά χρησιμοποιώντας το μήκος της κύριας συμβολοσειράς και το Python λειτουργία εμβέλειας.
  • Στη συνέχεια, η συμβολοσειρά b ενώνεται με την κενή σειρά στροφών χρησιμοποιώντας το διαχωριστικό συμβολοσειράς ".

Μέθοδος 2: Πρόγραμμα Palindrome in Python χρησιμοποιώντας Σημαία

Οι μεταβλητές επισήμανσης μπορούν να οριστούν σε Python για τον εντοπισμό παλινδρόμων. Η σημαία αρχικοποιείται σε 0. Το ακόλουθο πρόγραμμα απεικονίζει τη χρήση της παραμέτρου σημαίας:

Python Code για το Πρόγραμμα Παλίνδρομου:

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)

Παραγωγή:

deed is: Palindrome

0

Code Επεξήγηση:

  • Το char in Python ξεκινά με δείκτη 0.
  • Εφόσον το m έχει αρχικοποιηθεί ως -1, η συμβολοσειρά διαβάζεται από την πίσω πλευρά ως αρνητικός δείκτης.
  • Ο βρόχος for με τη δήλωση if ελέγχει εάν κάθε χαρακτήρας που ξεκινά με το δείκτη 0 που υπάρχει στη συμβολοσειρά ταιριάζει με τον αντίστροφο δείκτη της συμβολοσειράς.
  • Ωστόσο, εάν δεν ταιριάζει, τότε το πρόγραμμα αρχικοποιεί τη σημαία ως 1. Διαφορετικά, θα το αρχικοποιούσε ως 0.

Μέθοδος 3: Ελέγξτε το Palindrome in Python με αντιστροφή χαρακτήρα

Η μέθοδος char χρησιμοποιείται για την αντιστροφή μιας συμβολοσειράς σε αυτό το πρόγραμμα παλίνδρομου in Python. Η αρχική συμβολοσειρά ελέγχεται με την αντίστροφη συμβολοσειρά για να καθοριστεί εάν η συμβολοσειρά είναι παλίνδρομος ή όχι.

Python Πρόγραμμα Παλίνδρομου 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))

Παραγωγή:

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 Επεξήγηση:

  • PythonΗ συνάρτηση str βοηθά στη μετατροπή της μορφής αριθμητικής τιμής σε μορφή συμβολοσειράς. Το πρόγραμμα πρώτα ελέγχει εάν η τιμή 123 είναι παλίνδρομο ή όχι.
  • Στη συνέχεια, ελέγχει την τιμή του 101 και την τιμή συμβολοσειράς της πράξης.
  • Ο κώδικας ελέγχει εάν η τιμή είναι παλίνδρομο και για τη μορφή αριθμητικών και συμβολοσειρών.

Μέθοδος 4: Πώς να ελέγξετε το Palindrome in Python χρησιμοποιώντας Αντιστοίχιση χαρακτήρων

Σε αυτήν τη μέθοδο παλίνδρομου, το πρόγραμμα ελέγχει εάν κάθε χαρακτήρας στη συμβολοσειρά ταιριάζει με την αντίστροφη συμβολοσειρά χρησιμοποιώντας τον βρόχο for, τη συνάρτηση εμβέλειας και τη συνάρτηση Len.

Python code:

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

Παραγωγή:

Not Palindrome

Code Επεξήγηση:

  • Μια συνάρτηση που ορίζεται από το χρήστη με την ένδειξη ως Palindrome Comparator ελέγχει εάν η τιμή είναι συμβολοσειρά ή όχι.
  • Το πρόγραμμα συγκρίνει την αρχική συμβολοσειρά και την αντίστροφη της αρχικής συμβολοσειράς χρησιμοποιώντας τα κριτήρια πρωτότυπο[i]!= πρωτότυπο[len(πρωτότυπο) – i – 1].
  • Το παραπάνω πρόγραμμα χρησιμοποιεί την τεχνική του μήκους για να καθορίσει το μήκος της συμβολοσειράς.

Μέθοδος 5: Palindrome in Python χρησιμοποιώντας αναδρομή

In Python, αναδρομή σημαίνει ότι η συνάρτηση καλεί τον εαυτό της επανειλημμένα και σύμφωνα με ένα συγκεκριμένο σύνολο κριτηρίων. Με αυτόν τον τρόπο, το πρόβλημα μπορεί να αναλυθεί σε μικρότερα χρησιμοποιώντας την ίδια δομή λειτουργίας. Χρησιμοποιώντας τη λογική προγραμματισμού αναδρομής, μπορούν επίσης να ελεγχθούν οι συμβολοσειρές παλίνδρομου

Python code:

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

Παραγωγή:

12321 is: Palindrome

Code Επεξήγηση:

  • Το πρόγραμμα κάνει χρήση μιας συνάρτησης που ορίζεται από το χρήστη που καλεί τον εαυτό του αναδρομικά.
  • Ο αρχικός αριθμός αναλύεται και η υπολειπόμενη τιμή του προστίθεται στην αντίθετη τιμή.
  • Η αντίθετη τιμή πολλαπλασιάζεται πρώτα με το 10 πριν προστεθεί με την υπόλοιπη τιμή.

Μέθοδος 6: Πώς να χρησιμοποιήσετε το while Loop για να ελέγξετε το Palindrome

Ένας βρόχος while εκτελεί την εκτέλεση του κώδικα σε επαναληπτική βάση μέχρι να είναι αληθής η συνθήκη που εφαρμόζεται.

  • Η επαναληπτική μέθοδος μπορεί να χρησιμοποιηθεί για να ελέγξει εάν η ακέραια τιμή είναι παλινδρομική.
  • The Python Το πρόγραμμα κάνει χρήση προσωρινών αριθμών και τελεστών modulo.

Python code:

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

Παραγωγή:

Palindrome

Code Επεξήγηση:

  • Το πρόγραμμα χρησιμοποιεί έναν βρόχο while που ελέγχει εάν ο προσωρινός αριθμός είναι μικρότερος από το μηδέν.
  • Ο τελεστής modulo υπολογίζει το υπόλοιπο του αρχικού αριθμού.
  • Ο αρχικός αριθμός διαιρείται με το 10.
  • Η αντίστροφη παράμετρος υπολογίζεται πολλαπλασιάζοντας με το 10.
  • Ο αριθμός που προκύπτει προστίθεται στο υπόλοιπο.
  • Το παραπάνω πρόγραμμα ελέγχει τον αρχικό αριθμό και τον αντίστροφο αριθμό για να τον ταξινομήσει ως παλίνδρομο ή όχι.

Συχνές Ερωτήσεις

Συγκρίνετε την τιμή με την αντίστροφή της χρησιμοποιώντας s == s[::-1], μετατρέποντας πρώτα τους αριθμούς με str(). Οι αντίστοιχες οδηγίες σημαίνουν παλίνδρομο.

Η μέθοδος δύο δεικτών εξοικονομεί μνήμη με χρόνο O(n) και χώρο O(1), ωστόσο η αντιστροφή τομής είναι συνήθως ταχύτερη σε C.Python.

Ένας δείκτης ξεκινά από μπροστά, ένας από το τέλος. Συγκρίνονται προς τα μέσα. Η αντιστοίχιση ζευγών μέχρι να συναντηθούν επιβεβαιώνει ένα παλίνδρομο.

Γράψτε το κείμενο με πεζά γράμματα και κρατήστε μόνο αλφαριθμητικούς χαρακτήρες με την isalnum() και, στη συνέχεια, συγκρίνετέ το με το αντίστροφό του. Τα διαστήματα και η χρήση κεφαλαίων παύουν να έχουν σημασία.

Reverse μια συμβολοσειρά με slice s[::-1], reversed() συν “”.join() ή έναν προ-επόμενο βρόχο, και στη συνέχεια συγκρίνετέ το με το αρχικό.

Ναι. Ένας μόνο χαρακτήρας και μια κενή συμβολοσειρά διαβάζονται το ίδιο αντίστροφα, επομένως το s == s[::-1] επιστρέφει True.

RevΗ λογική ersal καθοδηγεί την προεπεξεργασία NLP, τους βιοπληροφορικούς ελέγχους DNA και τη μηχανική χαρακτηριστικών. Βιβλιοθήκες όπως μουδιασμένος διανυσματικοποιήστε αυτές τις δοκιμές συμμετρίας για μηχανική μάθηση.

Ναι. Το GitHub Copilot και παρόμοιοι βοηθοί τεχνητής νοημοσύνης δημιουργούν εκδόσεις τεμαχισμού, δύο σημείων, αναδρομής ή βρόχου από μια προτροπή. Να ελέγχετε πάντα πρώτα τις περιπτώσεις-κεφαλαίες (edge ​​casuals).

Συνοψίστε αυτήν την ανάρτηση με: