Ho due liste:
1:
1) A abc
2) A def
3) A ghi
4) B jkl
5) B mno
6) C fzy
7) C xxa
2:
1) vsf
2) jkl
3) fzy
4) xxa
5) xyz
6) mno
7) def
8) abc
Sto cercando di abbinare ognuna delle sequenze continue dalla lista 1
- in questo caso ci sono due sequenze continue, A e B-- con la sua sequenza corrispondente nella lista 2
, con le seguenti regole:
- La sequenza in
2
può essere discontinua - La sequenza in
2
può essere eseguita all'indietro o in avanti - Se non c'è una corrispondenza completa per
1
in2
, deve essere restituita la corrispondenza parziale più lunga
Quindi le corrispondenze nel mio set di esempio, con la lista 1 abbinata alla lista 2, sono:
Sequence A:
partial match
1 matches 8
2 matches 7
Sequence B:
discontinuous match
4 matches 2
5 matches 4
Sequence C:
continuous match
6 matches 3
7 matches 4
I set di dati sono in Excel, quindi ho intenzione di utilizzare VBA o C #.
Qualcuno può aiutarmi a suddividere questo problema in sottotask più semplici che devono essere eseguiti, in modo che sia più semplice scrivere l'applicazione?
So che normalmente è meglio per me mostrare del codice, ma ho problemi anche a capire un algoritmo pseudocodice come punto di partenza nel processo di progettazione.
EDIT:
Dopo averlo scritto, mi sono reso conto di aver dimenticato di includere una parte fondamentale del problema che lo rendeva più difficile: gli elenchi contengono valori non univoci. Ad esempio, potrebbe essere che il valore di lista 1 7 sia abc
e l'elenco 2 il valore 4 sia abc
, con lo stesso risultato di corrispondenza. Quindi dobbiamo abbinarli in base a sottosequenze comuni piuttosto che semplicemente facendo un join basato su valori individuali.