Vectors Incrustables. X90500


Statement
 

pdf   zip   main.py

html

Siguin A i B dos vectors, i siguin A1 i A2 una partició arbitrària d’A tal que A és la concatenació d’A1 i A2. La incrustació de B a dins d’A és el vector que tenim un cop hem concatenat A1 amb B i amb A2. Per exemple, si A = [1, 2, 3, 4] i B = [6,7,8], una possible incrustació de B a dins d’A seria [1,2,6,7,8,3,4].

Òbviament, si N = len(A) llavors podem incrustar B en N + 1 possibles posicions. Cal dir que els casos extrems consistirien en incrustar B abans d’A o bé al final d’A.

Siguin A i B dos vectors ordenats d’enters, potser amb repeticions i que poden tenir mides diferents. Diem que A i B són incrustables si la incrustació de B a dins d’A és també un vector ordenat. Per exemple, si tenim que:

||
A= ||
132526
||
B = ||
89101924
||
||

llavors A i B són incrustables, ja que si incrustem el vector B a la posició 2 del vector A:

||
13891019242526
||

es manté ordenat. En canvi, si tenim:

||
A= ||
131526
||
B = ||
5933
||
||

A i B no són incrustables, ja que no hi ha cap manera d’incrustar B a dins d’A de manera que ens doni un vector ordenat.

Feu la funció incrustables(A,B) tal que, donats un parell de vectors d’enters ordenats A,B, retorni True si i només si B és incrustable a A.

IMPORTANT: Per a fer aquest problema, tingueu en compte que no cal crear els vectors incrustats.

Observació

Només cal que enviïs el fitxer amb la funció (i les funcions auxiliars que hagis fet) que et demanem i prou. Aquest fitxer cal que es digui solution.py.

El fitxer main.py et pot servir per a fer la teva solució, però no cal que n’enviïs el contingut ni que el modifiquis.

Si vols provar la teva solució al teu ordinador caldrà que tinguis tots dos fitxers (main.py i solution.py) al mateix directori i que executis la comanda python3 main.py.

Entrada

Dos vectors d’enters ordenats A i B.

Sortida

True si i només si B és incrustable a A.

Public test cases
  • Input

    1  3  25  26
    8  9  10  19  24
    

    Output

    True
    
  • Input

    1  3  15  26
    5  9  33
    

    Output

    False
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python