Es2 esame 18/04/18 dubbio

g
gianluca (1270 points)
1 12 19
asked Apr 8, 2019 in Info sul corso e sugli esami by gianluca (1,270 points)
Ciao a tutti allego la traccia dell'esercizio  :

 '''
    Es 2: 5 punti
        
    Si definisca la funzione ricorsiva (o che usa una vostra funzione ricorsiva)  
    es2(parola), che presa in input una stringa di caratteri  parola restituisce la lista delle  
    diverse "sottoparole crescenti"  di parola. Le sottoparole devono comparire nella lista in ordine lessicografico.
    Si ricorda che una sottoparola e' quello che si ottiene da una parola concellandone 0 o piu'
    caratteri (in testa, in coda o nel mezzo).
    Inoltre una sottoparola si dice crescente se i caratteri che la compongono
    letti da sinistra  a destra risultano ordinati lessicograficamente.
    
    Ad esempio  la lista restituita da es2('zanzara') sara'
    ['a', 'aa', 'aaa', 'aar', 'an', 'anr', 'anz', 'ar', 'az', 'n', 'nr', 'nz', 'r', 'z', 'zz']
    '''

perchè le  sottoparole sono solo queste della soluzione?e come si dovrebbe ragionare?
233 views

1 Answer

Best answer
_andrea_ (45670 points)
2 40 297
answered Apr 8, 2019 by _andrea_ (45,670 points)
selected Apr 8, 2019 by gianluca
Sono solo queste perché sta scritto nella traccia che devi prendere solo quelle crescenti. Puoi ottenerle facendo una funzione che ritorni l'insieme di tutte le sottoparole e poi scartando quelle non crescenti
g
gianluca (1270 points)
1 12 19
commented Apr 8, 2019 by gianluca (1,270 points)
grazie mille!!!ok ora mi è chiaro e che sto un pò fuso ultimamente...allora per trovare solo le sottoparole crescenti che consigli ? iterare su ogni stringa e fare il controllo lettera per lettera,
_andrea_ (45670 points)
2 40 297
commented Apr 11, 2019 by _andrea_ (45,670 points)
Puoi usare list applicato su una stringa che te la trasforma in una lista di cartteri e poi controllare che sia ordinata