Argyris Prosilis Logo

Ερώτηση συνέντευξης σε senior Developer: Γράψε Live μέσα σε 30 λεπτά συνάρτηση που να..

Δημοσιεύτηκε : 28/03/2023
Προβολές : 1019
Ερώτηση συνέντευξης σε senior Developer: Γράψε Live μέσα σε 30 λεπτά συνάρτηση που να..

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

Πρόσφατα ένας φίλος και συνάδελφος, πέρασε συνέντευξη όπου του ζητήθηκε Live και μέσα σε 30 λεπτά να γράψει μια συνάρτηση που να “βρίσκει αν μια λέξη έχει ίδια προφορά με την αντίστροφη της.”.

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

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

Πάμε τώρα στο ζητούμενο πρόβλημα.

Στην παραπάνω περιγραφή κατα την άποψη μου υπάρχει μια νάρκη την οποία οφείλουμε να βάλουμε στην άκρη. Η λέξη “προφορά” μπορεί να οδηγήσει κάποιον σε λάθος μονοπάτι και να χαθεί. Π.χ στο να αναζητήσει κάποια σχετική library ή κάποιο public API.

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

Π.χ η λέξη anna έχει τέτοια ιδιότητα ενώ η λέξη car δεν έχει.

car // κανονική

rac // αντίστροφη

Είναι προφανές και σαφές με αυτήν την προσέγγιση, πώς η αντίστροφη λέξη του car οδηγεί εκ των πραγμάτων σε άλλη προφορά. Ούτε library, ούτε κάποιο API χρειαζόμαστε.

Φτάνοντας στο σημείο να έχουμε πλέον τόσο ξεκάθαρο του τι πρέπει να κάνουμε, η υλοποίηση είναι λίγες γραμμές χωρίς να χρειαστεί καν να χρησιμοποιήσουμε κάποια έτοιμη συνάρτηση.

Θα πρέπει απλά να εξετάζουμε ένα προς ένα τα γράμματα της λέξης με 2 δείκτες. Ο ένας θα ξεκινά απο την αρχή και θα πηγαίνει προς το τέλος ενώ ο άλλος θα ξεκινά απο το τέλος και θα ταξιδεύει προς το πρώτο γράμμα κάνοντας κάθε φορά έλεγχο αν τα γράμματα ειναι τα ίδια και στους 2 δείκτες μας.

Διαβάστε επίσης

Πώς γιγαντώθηκε οικονομικά η Κίνα - Το παράδειγμα για την Ελλάδα.

Πώς γιγαντώθηκε οικονομικά η Κίνα - Το παράδειγμα για την Ελλάδα.

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

Clean code μανιφέστο: Κανόνες, οφέλη και παραδείγματα!

Clean code μανιφέστο: Κανόνες, οφέλη και παραδείγματα!

Στο σημερινό μου άρθρο θα αναφερθώ στο κεφάλαιο “clean code”. Θα αναφέρω τι σημαίνει γράφω “καθαρό κώδικα”, γιατί είναι χρήσιμο να γράφουμε καθαρό κώδικα ως προγραμματιστές, ποια τα οφέλη για τις επιχειρήσεις και τέλος θα δώσω χαρακτηριστικά παραδείγματα

Ψάχνετε Προγραμματιστή;