Είναι η συμβολοσειρά σας ένα palindrome; Είτε χρησιμοποιείτε Python, C ++ ή JavaScript, χρησιμοποιήστε έναν από αυτούς τους αλγόριθμους για να μάθετε.
Μια συμβολοσειρά λέγεται ότι είναι ένα palindrome εάν η αρχική συμβολοσειρά και το αντίστροφο είναι τα ίδια. Σε αυτό το άρθρο, θα μάθετε για τον αλγόριθμο για να προσδιορίσετε εάν η δεδομένη συμβολοσειρά είναι παλινδρομή ή όχι. Θα μάθετε επίσης πώς να εφαρμόσετε αυτόν τον αλγόριθμο στις πιο δημοφιλείς γλώσσες προγραμματισμού όπως C ++, Python, C και JavaScript.
Παραδείγματα συμβολοσειράς Palindrome
Ακολουθούν μερικά παραδείγματα συμβολοσειρών palindrome και non-palindrome:
Αλγόριθμος για τον προσδιορισμό του εάν μια δεδομένη συμβολοσειρά είναι Palindrome ή όχι
Οι αλγόριθμοι είναι απλά μια σειρά οδηγιών που ακολουθούν, βήμα προς βήμα, για να κάνουν κάτι χρήσιμο ή να λύσουν ένα πρόβλημα. Μπορείτε να επιλύσετε το πρόβλημα του palindrome συμβολοσειράς χρησιμοποιώντας τον παρακάτω αλγόριθμο:
- Δηλώστε μια συνάρτηση που δέχεται τη δεδομένη συμβολοσειρά ως παράμετρο.
- Δημιουργήστε μια boolean μεταβλητή και ορίστε την σε true. Αφήστε τη μεταβλητή να είναι σημαία.
- Βρείτε το μήκος της δεδομένης συμβολοσειράς. Αφήστε το μήκος να είναι ν.
- Μετατρέψτε τη δεδομένη συμβολοσειρά σε πεζά για να κάνετε τη σύγκριση μεταξύ των χαρακτήρων χωρίς διάκριση πεζών-κεφαλαίων.
- Αρχικοποιήστε τη μεταβλητή χαμηλού δείκτη ως χαμηλός και ορίστε το στο 0.
- Αρχικοποιήστε τη μεταβλητή υψηλού δείκτη ως υψηλός και ορίστε το σε n-1.
- Κάντε τα εξής ενώ το χαμηλό είναι μικρότερο από το υψηλό:
- Συγκρίνετε χαρακτήρες με χαμηλό δείκτη και υψηλό δείκτη.
- Εάν οι χαρακτήρες δεν ταιριάζουν, ορίστε τη σημαία σε ψευδής και σπάστε το βρόχο.
- Αυξήστε την τιμή του χαμηλού κατά 1 και μειώστε την τιμή του υψηλού κατά 1.
- Εάν η σημαία είναι αληθινή στο τέλος της συνάρτησης, αυτό σημαίνει ότι η δεδομένη συμβολοσειρά είναι ένα περίγραμμα.
- Εάν η σημαία είναι λανθασμένη στο τέλος της συνάρτησης, σημαίνει ότι η δεδομένη συμβολοσειρά δεν είναι παλινδρομή.
Πρόγραμμα C ++ για να ελέγξετε εάν μια δεδομένη συμβολοσειρά είναι Palindrome ή όχι
Ακολουθεί η εφαρμογή C ++ για να προσδιορίσετε εάν η δεδομένη συμβολοσειρά είναι παλινδρομή ή όχι:
// Περιλαμβάνονται βιβλιοθήκες
#περιλαμβάνω
χρησιμοποιώντας το namespace std;
// Λειτουργία για τον έλεγχο του palindrome συμβολοσειράς
void checkPalindrome (συμβολοσειρά str)
{
// Επισήμανση για να ελέγξετε αν η δεδομένη συμβολοσειρά είναι παλινδρομή
bool flag = true;
// Εύρεση του μήκους της συμβολοσειράς
int n = str.length ();
// Μετατροπή της συμβολοσειράς σε πεζά
για (int i = 0; εγώ {
str [i] = tolower (str [i]);
}
// Αρχικοποίηση μεταβλητής χαμηλού δείκτη
int χαμηλή = 0;
// Εκκίνηση μεταβλητής υψηλού δείκτη
int high = n-1;
// Τρέχοντας το βρόχο μέχρι το υψηλό να είναι μεγαλύτερο από το χαμηλό
ενώ (υψηλή> χαμηλή)
{
// Εάν οι χαρακτήρες δεν είναι ίδιοι, ορίστε τη σημαία σε false
// και σπάστε από το βρόχο
αν (str [high]! = str [low])
{
flag = false;
Διακοπή;
}
// Αυξήστε τη μεταβλητή χαμηλού δείκτη
χαμηλό ++;
// Μείωση της μεταβλητής υψηλού δείκτη
υψηλός--;
}
// Ελέγξτε αν η σημαία είναι αληθής ή ψευδής
εάν (σημαία)
{
cout << "Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome" << endl;
}
αλλού
{
cout << "Όχι, η δεδομένη συμβολοσειρά δεν είναι palindrome" << endl;
}
ΕΠΙΣΤΡΟΦΗ;
}
int main ()
{
// Θήκη δοκιμής: 1
string str1 = "MUO";
checkPalindrome (str1);
// Θήκη δοκιμής: 2
string str2 = "κυρία";
checkPalindrome (str2);
// Θήκη δοκιμής: 3
string str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Θήκη δοκιμής: 4
string str4 = "racecar";
checkPalindrome (str4);
// Θήκη δοκιμής: 5
string str5 = "μαμά";
checkPalindrome (str5);
επιστροφή 0;
}
Παραγωγή:
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Πρόγραμμα Python για να ελέγξετε αν μια δεδομένη συμβολοσειρά είναι Palindrome ή όχι
Ακολουθεί η εφαρμογή Python για να προσδιορίσετε αν η δεδομένη συμβολοσειρά είναι παλινδρομή ή όχι:
# Λειτουργία για τον έλεγχο του palindrome συμβολοσειράς
def checkPalindrome (str):
# Επισήμανση για να ελέγξετε εάν η δεδομένη συμβολοσειρά είναι ένα περίγραμμα
flag = Αλήθεια
# Εύρεση του μήκους της συμβολοσειράς
n = len (str)
# Μετατροπή της συμβολοσειράς σε πεζά
str = str.lower ()
# Εκκίνηση μεταβλητής χαμηλού δείκτη
χαμηλή = 0
# Εκκίνηση μεταβλητής υψηλού δείκτη
υψηλό = n-1
# Τρέχοντας το βρόχο μέχρι το υψηλό να είναι μεγαλύτερο από το χαμηλό
ενώ είναι υψηλό> χαμηλό:
# Εάν οι χαρακτήρες δεν είναι ίδιοι, ορίστε τη σημαία σε false
# και σπάστε από το βρόχο
αν str [high]! = str [low]:
flag = Λάθος
Διακοπή
# Αυξήστε τη μεταβλητή χαμηλού δείκτη
χαμηλή = χαμηλή + 1
# Μείωση της μεταβλητής υψηλού δείκτη
υψηλό = υψηλό - 1
# Ελέγξτε εάν η σημαία είναι αληθής ή ψευδής
εάν η σημαία:
εκτύπωση ("Ναι, η δεδομένη συμβολοσειρά είναι παλινδρομή")
αλλού:
εκτύπωση ("Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή")
# Θήκη δοκιμής: 1
str1 = "MUO"
checkPalindrome (str1)
# Θήκη δοκιμής: 2
str2 = "κυρία"
checkPalindrome (str2)
# Θήκη δοκιμής: 3
str3 = "MAKEUSEOF"
checkPalindrome (str3)
# Θήκη δοκιμής: 4
str4 = "αγωνιστικό αυτοκίνητο"
checkPalindrome (str4)
# Θήκη δοκιμής: 5
str5 = "μαμά"
checkPalindrome (str5)
Παραγωγή:
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
C Πρόγραμμα για να ελέγξετε εάν μια δεδομένη συμβολοσειρά είναι Palindrome ή όχι
Ακολουθεί η εφαρμογή C για να προσδιορίσετε εάν η δεδομένη συμβολοσειρά είναι παλινδρομή ή όχι:
// Περιλαμβάνονται βιβλιοθήκες
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
// Λειτουργία για τον έλεγχο του palindrome συμβολοσειράς
void checkPalindrome (char str []))
{
// Επισήμανση για να ελέγξετε αν η δεδομένη συμβολοσειρά είναι παλινδρομή
bool flag = true;
// Εύρεση του μήκους της συμβολοσειράς
int n = strlen (str);
// Μετατροπή της συμβολοσειράς σε πεζά
για (int i = 0; εγώ {
str [i] = tolower (str [i]);
}
// Αρχικοποίηση μεταβλητής χαμηλού δείκτη
int χαμηλή = 0;
// Εκκίνηση μεταβλητής υψηλού δείκτη
int high = n-1;
// Τρέχοντας το βρόχο μέχρι το υψηλό να είναι μεγαλύτερο από το χαμηλό
ενώ (υψηλή> χαμηλή)
{
// Εάν οι χαρακτήρες δεν είναι ίδιοι, ορίστε τη σημαία σε false
// και σπάστε από το βρόχο
αν (str [high]! = str [low])
{
flag = false;
Διακοπή;
}
// Αυξήστε τη μεταβλητή χαμηλού δείκτη
χαμηλό ++;
// Μείωση της μεταβλητής υψηλού δείκτη
υψηλός--;
}
// Ελέγξτε αν η σημαία είναι αληθής ή ψευδής
εάν (σημαία)
{
printf ("Ναι, η δεδομένη συμβολοσειρά είναι παλινδρομή \ n");
}
αλλού
{
printf ("Όχι, η δεδομένη συμβολοσειρά δεν είναι παλέντουμ \ n").
}
ΕΠΙΣΤΡΟΦΗ;
}
int main ()
{
// Θήκη δοκιμής: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Θήκη δοκιμής: 2
char str2 [] = "κυρία";
checkPalindrome (str2);
// Θήκη δοκιμής: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
// Θήκη δοκιμής: 4
char str4 [] = "racecar";
checkPalindrome (str4);
// Θήκη δοκιμής: 5
char str5 [] = "μαμά";
checkPalindrome (str5);
επιστροφή 0;
}
Παραγωγή:
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Πρόγραμμα JavaScript για να ελέγξετε αν μια δεδομένη συμβολοσειρά είναι Palindrome ή όχι
Ακολουθεί η εφαρμογή JavaScript για να προσδιορίσετε εάν η δεδομένη συμβολοσειρά είναι παλινδρομή ή όχι:
// Λειτουργία για τον έλεγχο του palindrome συμβολοσειράς
έλεγχος λειτουργίας Palindrome (str) {
// Επισήμανση για να ελέγξετε αν η δεδομένη συμβολοσειρά είναι παλινδρομή
var flag = true;
// Εύρεση του μήκους της συμβολοσειράς
var n = str.length;
// Μετατροπή της συμβολοσειράς σε πεζά
str = str.toLowerCase ();
// Αρχικοποίηση μεταβλητής χαμηλού δείκτη
var low = 0;
// Εκκίνηση μεταβλητής υψηλού δείκτη
var high = n-1;
// Τρέχοντας το βρόχο μέχρι το υψηλό να είναι μεγαλύτερο από το χαμηλό
ενώ (υψηλή> χαμηλή) {
// Εάν οι χαρακτήρες δεν είναι ίδιοι, ορίστε τη σημαία σε false
// και σπάστε από το βρόχο
αν (str [high]! = str [low]) {
flag = false;
Διακοπή;
}
// Αυξήστε τη μεταβλητή χαμηλού δείκτη
χαμηλό ++;
// Μείωση της μεταβλητής υψηλού δείκτη
υψηλός--;
}
// Ελέγξτε αν η σημαία είναι αληθής ή ψευδής
αν (σημαία) {
console.log ("Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome");
} αλλιώς {
console.log ("Όχι, η δεδομένη συμβολοσειρά δεν είναι palindrome");
}
}
// Θήκη δοκιμής: 1
var str1 = "MUO";
checkPalindrome (str1);
// Θήκη δοκιμής: 2
var str2 = "κυρία";
checkPalindrome (str2);
// Θήκη δοκιμής: 3
var str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Θήκη δοκιμής: 4
var str4 = "racecar";
checkPalindrome (str4);
// Θήκη δοκιμής: 5
var str5 = "μαμά";
checkPalindrome (str5);
Παραγωγή:
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Όχι, η δεδομένη συμβολοσειρά δεν είναι παλινδρομή
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Ναι, η δεδομένη συμβολοσειρά είναι ένα palindrome
Μάθετε πώς να αντιμετωπίζετε χορδές στον προγραμματισμό
Η εργασία με χορδές αποτελεί αναπόσπαστο μέρος του προγραμματισμού. Πρέπει να γνωρίζετε πώς να χρησιμοποιείτε και να χειρίζεστε συμβολοσειρές σε οποιαδήποτε από τις γλώσσες προγραμματισμού όπως Python, JavaScript, C ++ κ.λπ.
Εάν αναζητάτε μια γλώσσα για να ξεκινήσετε, το Python είναι μια εξαιρετική επιλογή.
Η χρήση και ο χειρισμός συμβολοσειρών στο Python μπορεί να φαίνεται δύσκολη, αλλά είναι παραπλανητικά απλή.
Διαβάστε Επόμενο
- Προγραμματισμός
- Εκμάθηση κωδικοποίησης
Ο Yuvraj είναι προπτυχιακός φοιτητής Πληροφορικής στο Πανεπιστήμιο του Δελχί της Ινδίας. Είναι παθιασμένος με το Full Stack Web Development. Όταν δεν γράφει, εξερευνά το βάθος διαφορετικών τεχνολογιών.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.