Come avevo detto in un altro post:
La parola nascosta sarà all'interno di ogni stringa, separata da spazio, UNA SOLA VOLTA PER STRINGA.
Nell'esempio del professore infatti, per le 6 stringhe con parola nascosta di lunghezza 3:
moneta
maratoneta
pitone
onesto
storione
sonetto
la parola nascosta è 'one' e le posizioni sono nell'ordine: 1, 5, 3, 0, 5, 1
Questo vuol dire che cercando in ogni stringa tutte le sottostringhe di lunghezza 3, 'one' apparirà SOLO 1 volta in ogni stringa. Dopodiché dovrai ritornale la lista delle posizioni di 'one' all'interno delle tue stringhe.
Sapendo questo, se ti generassi tutte le possibili sottostringhe nella prima parola e le andassi a confrontare con le altre, noterai come solo 'one' venga ripetuta nella prima e nelle altre sottostringhe. Questo vuol dire che è inutile andare a cercare tutte le possibili sottostringhe in tutte le stringhe, bensì dovrai andare a cercare, confrontando, le possibili sottostringhe nelle altre parole tramite le sottostringhe della prima parola!
Per fare un esempio la stringa 'onesto' : one, nes, est, sto
Se guardi la stringa successiva 'storione' sarà composta da: sto, tor, ori, rio, ion, one Quindi andando a guardare nella seconda parola vedrai che alcune sottostringhe si ripetono così saprai quali sono le possibili sottostringhe da cercare. Ora allora dovrai andare a vedere nelle altre parole quali sono ripetute tra quelle.
Spero di averti dato qualche spunto o qualcosa su cui pensare.