υπολογιστή

* Γνώση Υπολογιστών >> υπολογιστή >> Λογισμικό

Ελέγξτε εάν μια συμβολοσειρά είναι Palindrome σε Java και Python

Με την πάροδο των ετών, ο έλεγχος αν μια συμβολοσειρά είναι ένα παλίνδρομο ή όχι έχει γίνει μια κλασική κωδικοποιητική ερώτηση συνέντευξης. Αυτό συμβαίνει επειδή περιλαμβάνει έννοιες γύρω από τη χειραγώγηση των συμβολοσειρών και τη σύγκριση και ακόμη και τους βρόχους ανάλογα με την υλοποίηση. Και το ερώτημα δεν είναι μακρόστενο, ώστε να μπορεί να ολοκληρωθεί εντός των χρονικών ορίων μιας συνέντευξης. Αυτό το άρθρο περιλαμβάνει την εφαρμογή για τον έλεγχο αν μια συμβολοσειρά είναι palindrome σε java και python.

Τι είναι ένα παλινδρόμιο; "μια λέξη ή μια φράση που διαβάζει το ίδιο προς τα πίσω ως προς τα εμπρός." Βασικά, σημαίνει ότι αν γράψετε τη λέξη ή τη φράση αντίστροφα, θα είναι ακριβώς ίδια όπως όταν ήταν προς τα εμπρός. Για παράδειγμα, ο μπαμπάς και η μαμά είναι palindromes και ο πατέρας και η μητέρα δεν είναι. Η λέξη "palindrome" προέρχεται από δύο ελληνικές ρίζες λέξεις, "παλίν" που σημαίνει πάλι και "dromos" έννοια τρόπος ή κατεύθυνση. Είχε δημιουργηθεί από τον Άγγλο θεατρικό συγγραφέα Ben Jonson τον 17ο αιώνα. Λύση

Ο πιο κοινός και εύκολος τρόπος για να λυθεί το ερώτημα είναι να αντιστραφεί πρώτα συμβολοσειρά και κατόπιν τη σύγκριση με την αρχική συμβολοσειρά. Αυτή η προσέγγιση θα είναι O (n) στην εγγραφή big-O επειδή η αντιστροφή της συμβολοσειράς είναι O (n).

Ένας άλλος τρόπος θα ήταν να αρχίσετε να συγκρίνετε χαρακτήρες από την αρχή και στο τέλος και να συνεχίσετε μέχρι να φτάσετε στη μέση. Αυτή η προσέγγιση έχει μια χρονική πολυπλοκότητα του O (n /2), αλλά στην εγγραφή big-O θα εξακολουθεί να είναι O (n). Αλλά το πλεονέκτημα με αυτή την προσέγγιση είναι ότι μπορείτε να επιστρέψετε το False μόλις συναντήσετε την πρώτη αναντιστοιχία, ενώ με την πρώτη προσέγγιση, αφού η αντιστροφή μιας συμβολοσειράς είναι το πρώτο βήμα, η πολυπλοκότητα του χρόνου θα είναι πάντα O (n).

Παλίνδρομα σε υλοποίηση Python

Μετάφραση του κειμένου

Παλίνδρομα στην υλοποίηση του Python

br>

Ακολουθεί ο κώδικας για τον έλεγχο αν μια συμβολοσειρά είναι palindrome σε java.

Συμβουλή

Επιβεβαιώστε με τον ερωτηθέντα αν θέλουν ο κώδικας να είναι διακριτικός ή όχι. Για παράδειγμα: Εάν ο κώδικας είναι ευαίσθητος σε πεζά, τότε ο μπαμπάς δεν είναι παλίνδρομο επειδή ο πρώτος χαρακτήρας είναι κεφαλαία "D" και ο τελευταίος χαρακτήρας είναι πεζά "d".

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα