Xoc de trens T69987


Statement
 

pdf   zip   main.py

Representem amb una cadena de caràcters str formada únicament pels caràcters ’+’ i ’=’ els desplaçaments d’un tren cap a la dreta. Anàlogament, representem amb una str formada únicament pels caràcters ’-’ i ’=’ els desplaçaments d’un tren cap a l’esquerra.

El caràcter ’+’ significa que el tren es mou una posició cap a la dreta en aquest segon; el caràcter ’=’ significa que el tren roman immòbil aquest segon; i el caràcter ’-’ indica que el tren es mou una posició cap a l’esquerra.

Dissenya una funció choque(m1: str, m2: str, d: int) -> int que, donat el desplaçament m1 d’un tren que es mou cap a la dreta, el desplaçament m2 d’un altre tren que es mou cap a l’esquerra, amb m1 i m2 de la mateixa longitud, i una distància inicial d > 0 que indica la separació inicial entre ambdós trens, retorni el nombre de segons que triguen a xocar. Si no xoquen, la funció ha de retornar 0.

S’entén que els trens xoquen en un instant si, després d’executar els desplaçaments corresponents a aquell segon, la distància entre ells esdevé menor que 0. Si estan a distància zero, encara no han xocat; xoquen quan algun dels dos es mou i redueix la distància.

Els trens no reculen, és a dir, el tren de la dreta mai es mou cap a l’esquerra, i el tren de l’esquerra mai es mou cap a la dreta.

Pots fer servir funcions com zip o range per resoldre el problema.

Exemple de sessió

Sample session
>>> choque('+=====+++++++', '-=====-=========', 3)
7
>>> choque('==+=++++=======', '-----=========', 10)
0
>>> choque('+++', '---', 6)
0
>>> choque('++++', '----', 6)
4
Information
Author
infbesos
Language
Catalan
Translator
infbesos
Original language
Spanish
Other languages
English Spanish
Official solutions
Python
User solutions
Python