Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Esercizio: regex?

  1. #1

    Esercizio: regex?

    Ciao ragazzi!!
    Il mio prof ci ha assegnato questo esercizio per casa, e vorrei un suggerimento (non la soluzione, mi basta capire come risolverlo) sulla sua risoluzione.

    Avendo una stringa ed un set di caratteri, identificare la più grande sottostringa che contenga tutti i caratteri del set.

    Es.: (ABAMCOAHIFRBC, {A,B,C}) -> BAMC

    Ho pensato di scomporre la stringa in un array di char e confrontare ogni carattere con il successivo ed eliminare dal set gli eventuali caratteri incontrati, ma non penso sia il modo migliore di risolvere il problema.

    Poi ho pensato alle regex...dite che potrebbero essermi d'aiuto per la risoluzione? C'è un modo per prendere tutte le sottostringhe che contengono tutti i caratteri del set?

    Spero in un vostro aiuto, ciao!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Esercizio: regex?

    Originariamente inviato da dionisoft
    Avendo una stringa ed un set di caratteri, identificare la più grande sottostringa che contenga tutti i caratteri del set.

    Es.: (ABAMCOAHIFRBC, {A,B,C}) -> BAMC
    No alt. Qui bisogna precisare perché mi pare che la descrizione non collimi molto con l'esempio fatto.

    Tutti i caratteri del set una volta sola? O ripetibili? E poi sei sicuro del "più grande"? Perché a me pare che BAMC sia la più piccola che contiene A/B/C.

    La più grande accettando ripetizioni sarebbe l'intera stringa ABAMCOAHIFRBC.
    La più grande non accettando ripetizioni sarebbe COAHIFRB.

    ... quindi?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Credo si intenda "tutti i caratteri del set una e una sola volta", ma in tal caso è evidente che la soluzione BAMC non è corretta.
    Con qualche difficoltà potresti anche riuscire a risolvere il problema con le espressioni regolari... ma non mi pare proprio la via migliore.
    Basandomi sull'assunto iniziale che ho fatto sul problema, non vedo perchè la tua soluzione - per quanto generica - non debba andare bene

  4. #4
    Perdonatemi...ho sbagliato...
    Effettivamente è la più piccola!!

    Le ripetizioni non sono importanti, l'unica cosa importante è che la sottostringa contenga almeno una volta tutti i caratteri contenuti nel set. Quindi anche un risultato come BDHFGAJAAAAJDFHAAAFJHC andrebbe benissimo!

    So che il mio ragionamento fila, ma sto cercando di capire se ci sono soluzioni migliori, tutto qui!!

  5. #5
    Up!
    Nessuna risposta significa che il metodo migliore è quello di analizzare la stringa da zero? :master:

  6. #6
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Il mio voto l'ho già espresso

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da dionisoft
    Nessuna risposta significa che il metodo migliore è quello di analizzare la stringa da zero? :master:
    Io direi di sì, analizzare la stringa con un proprio algoritmo.
    Con le espressioni regolari non lo vedo fattibile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Grazie mille ragazzi!!
    Se la risposta del prof dovesse esser diversa da quella che mi avete consigliato ve lo farò sapere!!
    Ciao!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.