Representamos con una cadena de caracteres str formada
únicamente por los caracteres ’+’ e ’=’ los
desplazamientos de un tren hacia la derecha. Análogamente, representamos
con una str formada únicamente por ’-’ e
’=’ los desplazamientos de un tren hacia la izquierda.
El carácter ’+’ significa que el tren se mueve una
posición a la derecha en ese segundo; el carácter ’=’
significa que el tren permanece inmóvil ese segundo; y el carácter
’-’ indica que el tren se mueve una posición a la
izquierda.
Diseña una función
choque(m1: str, m2: str, d: int) -> int que, dado el
desplazamiento m1 de un tren moviéndose hacia la derecha,
el desplazamiento m2 de otro tren moviéndose hacia la
izquierda, con m1 y m2 de la misma longitud, y
una distancia inicial d > 0 que indica la separación
inicial entre ambos trenes, devuelva el número de segundos que tardan en
chocar. Si no chocan, la función debe devolver 0.
Se entiende que los trenes chocan en un instante si, después de ejecutar los desplazamientos correspondientes a ese segundo, la distancia entre ellos se vuelve menor que 0. Si están a distancia cero, aún no han chocado; chocarán cuando alguno de los dos se mueva y reduzca la distancia.
Los trenes no retroceden, es decir, el tren de la derecha nunca se mueve hacia la izquierda, y el tren de la izquierda nunca se mueve hacia la derecha.
Puedes usar funciones como zip o range para
resolver el problema.
>>> choque('+=====+++++++', '-=====-=========', 3) 7 >>> choque('==+=++++=======', '-----=========', 10) 0 >>> choque('+++', '---', 6) 0 >>> choque('++++', '----', 6) 4