Trilhos de carrinho de mina

Published by Thomas O'Dell in

Ted trabalha como programador na Minecraft Inc. Seu chefe acaba de lhe dar a importante tarefa de atualizar o código dos trilhos dos carrinhos de mina até o fim de abril. No entanto, ele precisou se isolar recentemente por causa da Covid-19 e deixou o código dos trilhos NO TRABALHO. Ele tem as abreviações dos trilhos que deve verificar e sabe onde os carrinhos devem terminar, mas não tem o código propriamente dito.

Ele sabe que:

  1. "-->" = "Trilho de aceleração" ⁠— Se um carrinho de mina interagir com este trilho, sua velocidade aumenta em 2.67 BPS, a menos que esteja em sua velocidade máxima de 8 BPS.
  2. "<-->" = "Trilho energizado" ⁠— Se um carrinho de mina interagir com este trilho, sua velocidade permanece a mesma.
  3. "<--" = "Trilho de desaceleração" ⁠— Se um carrinho de mina interagir com este trilho, sua velocidade diminui em 2.67 BPS, a menos que sua velocidade seja igual a 0, quando ele para.
  4. "---" = "Trilho não energizado" ⁠— Se um carrinho de mina interagir com este trilho, sua velocidade diminui em 1 BPS, a menos que sua velocidade seja igual a 0, quando ele para.

Ajude Ted escrevendo uma classe para os trilhos que interaja com a classe Minecart fornecida, conforme mostrado acima. Depois, escreva uma função que receba uma lista das abreviações dos trilhos e:

  • Se a Minecart chegar ao último trecho do trilho, retorne True.
  • Caso contrário, retorne o índice do trecho do trilho onde a Minecart parar.

Exemplos

mine_run(["-->", "-->", "-->", "<--", "<--", "<--"]) ➞ True

mine_run(["-->", "<--", "-->", "-->", "<-->", "---"]) ➞ 1

Notas

N/A