Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
14 ώρες πριν, k33theod είπε

Απ ότι βλέπω ο marios28 κάνει το ίδιο μόνο που στο δεύτερο iteration είναι νομίζω προτιμότερο να διαβάσει το hashmap και όχι το string

Πρέπει να διαβαστεί το string, γιατί διαφορετικά δε θα γνωρίζουμε το index του char μέσα στο string. Ο hashmap θα έχει λιγότερα στοιχεία (ζευγάρια χαρακτήρα-συχνότητα επανάληψης) από τo string, αν έχουμε επανάληψη κάποιου χαρακτήρα. 

Δημοσ. (επεξεργασμένο)

pmav Σωστός

Εγώ το δοκίμασα σε windows σε python  3.6.1 και μου δούλευε με απλό dict. Άλλη εναλλακτική είναι και το OrderedDict.

12 ώρες πριν, marios28 είπε

Πρέπει να διαβαστεί το string, γιατί διαφορετικά δε θα γνωρίζουμε το index του char μέσα στο string. Ο hashmap θα έχει λιγότερα στοιχεία (ζευγάρια χαρακτήρα-συχνότητα επανάληψης) από τo string, αν έχουμε επανάληψη κάποιου χαρακτήρα. 

Όταν στο hashmap βρεις key με value 1 θα κάνεις return το str.indexOf(key). Πιστεύω ότι γίνεται εκτός και εάν το hashmap είναι unordered. Aυτό που λέει ο pmav σε εμένα δηλαδή.

Επεξ/σία από k33theod
Δημοσ.

 

Στις 17/11/2018 στις 12:22 ΜΜ, Asevastos είπε

να βελτιώσω τον αλγόριθμο και να τον κάνω καλύτερο από quadratic

Λύνεται και με single traversal του string. Δώσε έμφαση σε αυτό:

Στις 17/11/2018 στις 2:13 ΠΜ, defacer είπε

Δε χρειάζεται κανένας μετρητής. Αν βρεις τον ίδιο χαρακτήρα σε άλλη θέση εκτός του τρέχοντος index, δεν είναι μοναδικός, πάμε στο επόμενο index. Ούτε μετρητές ούτε τίποτα

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...