introduction
Considérons une séquence d'entiers et l'une de ses sous-séquences, disons A = [4 2 2 4 4 6 5] et B = [2 4 5] . Nous voulons supprimer les éléments de B de A dans l'ordre, et il existe plusieurs façons de le faire:
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
Dans tous les cas, la séquence restante est la même, [4 2 4 6] . Dans ce cas, nous disons que B est unique amovible de A .
La tâche
Vos entrées sont deux séquences d'entiers non négatifs, A et B , où B est garanti pour une séquence de A . Les entrées peuvent être égales et elles peuvent être vides. Vous pouvez les prendre dans n'importe quel ordre, dans n'importe quel format raisonnable.
Votre sortie doit être une valeur véridique si B est uniquement amovible de A , et une valeur fausse dans le cas contraire.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas gagne.
Cas de 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
pour le deuxième cas de%
. De plus, je pense que la fonction principale serait plus courte sous forme pointue.