Argyris Prosilis Logo

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

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

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

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

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

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

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

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

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

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

car // κανονική

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

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

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

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

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

Η ευτυχία ειναι επιλογή!

Η ευτυχία ειναι επιλογή!

Ο Αριστοτέλης υποστήριζε πώς κάθε άνθρωπος ειναι τόσο ευτυχισμένος όσο ο ίδιος επιθυμεί..

6 tips με παραδείγματα για σωστό σχεδιασμό ενός REST API

6 tips με παραδείγματα για σωστό σχεδιασμό ενός REST API

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

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