introduzione
Considera una sequenza di numeri interi e una delle sue sottosequenze, ad esempio A = [4 2 2 4 4 6 5] e B = [2 4 5] . Vogliamo rimuovere gli elementi di B da A in ordine, e ci sono diversi modi per farlo:
A = 4 2 2 4 4 6 5
B = 2 4 5
-> 4 2 4 6
A = 4 2 2 4 4 6 5
B = 2 4 5
-> 4 2 4 6
A = 4 2 2 4 4 6 5
B = 2 4 5
-> 4 2 4 6
A = 4 2 2 4 4 6 5
B = 2 4 5
-> 4 2 4 6
In tutti i casi, la sequenza rimanente è la stessa, [4 2 4 6] . In questo caso, diciamo che B è unicamente estraibile dalla A .
L'obiettivo
I suoi ingressi sono due sequenze di numeri interi non negativi, A e B , dove B è garantito per essere una sottosequenza di A . Gli input possono essere uguali e possono essere vuoti. Puoi portarli nell'ordine che preferisci, in qualsiasi formato ragionevole.
Il risultato deve essere un valore veritiero se B è unicamente rimovibile da A e un valore falso in caso contrario.
Regole e punteggio
È possibile scrivere un programma completo o una funzione. Vince il conteggio dei byte più basso.
Casi test
[] [] -> True
[0,3] [] -> True
[1,0,1] [1] -> False
[0,2] [0,2] -> True
[2,2,1,1,2,2,2] [2,1] -> True
[4,2,2,4,4,6,5] [4,5] -> False
[10,5,10,10,5,10] [10,5,10] -> False
[4,2,2,4,4,6,5] [2,4,5] -> True
[1,1,1,0,0,0,1,1,1,0] [1,0,1,1] -> True
[0,1,0,0,0,0,1,1,0,1] [1,0,1,1] -> False
[0,4,0,0,4,1,4,2,2] [0,0,0,1,4] -> True
[0,2,2,25,0,2,2,26,0,0,2] [2,0,0,0,2] -> True
[1,1,1,3,2,1,3,2,2,3,3,2] [1,1,2,3,2] -> False
[0,3,2,0,1,3,2,0,0,0,3,2] [0,1,2,0,3] -> False
[5,7,2,7,7,1,7,7,5,2,7,7,5,2,2,7,5] [2,7,5,7,7,2] -> False
[5,4,0,5,4,5,4,1,0,4,2,1,1,2,4,4,0,2,2,1] [4,0,1,1,2,1] -> False
[0,1,4,0,1,4,0,1,5,1,4,4,2,0,0,1,1,1,2,4] [0,1,0,0,2,0,1,4] -> True
x%_=x
per il secondo caso di%
. Inoltre, penso che la funzione principale sarebbe più breve in forma significativa.