LCS in Python è solo la funzione di intersezione in termini di lunghezza?

stavo cercando di otpimze un codice che restituisce la lunghezza della più lunga stringa comune tra due stringhe e realizzato che la funzione di inserimento restituisce praticamente lo stesso. sono corretto?

a = input() b = input() print (len(set(a).intersection(b)))

EN From: Is LCS in Python just the intersection function in terms of length?

More similar articles:

2 Comments

  1. no, perché l’intersezione delle tue parole spezzerà le singole lettere in elementi di una lista. per esempio,

    a = 'abcd'
    b = 'dcba'

    diventa diventa diventa

    a = ['a', 'b', 'c', 'd']
    b = ['d', 'c', 'b', 'a']

    la lunghezza dell’intersezione sarà 4, ma questo non è corretto per il tuo caso dato che ‘abcd’ e ‘dcba’ non hanno una sottostringa comune più lunga della lunghezza 1.

    inoltre, utilizzando set su una parola rimuoverà tutte le lettere duplicate nella tua parola, che sarà anche rovinare la ricerca di sottostringhe comuni.

    quello che si dovrebbe fare invece è qualcosa di simile dividere le due parole in liste tutte le possibili sottostringhe, come quello che viene fatto in questo post. allora Lei può fare un’intersezione di quelle liste e prendere l’elemento di più grande lunghezza.

Leave a Reply

Your email address will not be published. Required fields are marked *