Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Polso9 Visualizza il messaggio
    Volevo chiedere la vostra opinione su dove ho sbagliato o dove devo modificare.
    Innanzitutto, purtroppo, il codice è parecchio contorto e fumoso, principalmente per via del gran numero di if annidati. Che non va assolutamente bene.

    Per risolvere il problema, bisogna per prima cosa stabilire se puoi/vuoi utilizzare delle funzionalità di un po' più alto livello tipo StringTokenizer o le espressioni regolari per estrarre le parole a sé stanti. Oppure se devi fare tutto "a mano" con della tua logica.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto, purtroppo, il codice è parecchio contorto e fumoso, principalmente per via del gran numero di if annidati. Che non va assolutamente bene.

    Per risolvere il problema, bisogna per prima cosa stabilire se puoi/vuoi utilizzare delle funzionalità di un po' più alto livello tipo StringTokenizer o le espressioni regolari per estrarre le parole a sé stanti. Oppure se devi fare tutto "a mano" con della tua logica.
    Hai ragione ci sono troppi if annidati, ma purtroppo devo fare tutto "a mano".
    Ci sono delle soluzioni per evitare tutti quei if?

  3. #3
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da Polso9 Visualizza il messaggio
    Hai ragione ci sono troppi if annidati, ma purtroppo devo fare tutto "a mano".
    Ci sono delle soluzioni per evitare tutti quei if?
    Caspita... in pratica è un unrolling di ciclo, adatto per le massime prestazioni vabbè sto scherzando.

    La risposta è: esistono superalgoritmi per questo tipo di ricerche, alcuni addirittura basati su rolling hash, string matching parziali e chi più ne ha ne metta.
    Ipotizzando invece che sia un esercizietto di tipo accademico, dipende se puoi usare funzioni "furbe" (di libreria) o se devi fare "a mano".

    Per "a mano", ipotizzando quindi che si tratti di un "allenamento", devi stabilire quale sia il carattere di separazione, che penso possa essere realisticamente lo spazio.

    Quindi farai un ciclo doppio (o meglio due cicli innestati), col primo scansioni dall'inizio alla fine (in realtà fine-lunghezza stringa da cercare, ma lasciamo stare questi dettagli) alla ricerca del primo carattere non-spazio.
    Poi verificherai (ciclo interno) se i caratteri successivi sono c o n s o l e e poi la stringa finisce, o c'è uno spazio. Se il riscontro è positivo => hai trovato, altrimenti incrementi la posizione corrente del carattere e continui.

    Come puoi intuire (?) farai un sacco di confronti in più, quindi con complessità caso peggiore O(nm), ma per esercizio può andar bene.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.