Todos os desafios
Médio 0 resolvidos 0% de aceitação

Simulador de Comandos de Robô

Mova um robô usando L (gira 90 graus à esquerda), R (gira 90 graus à direita) e A (avança um passo).

Mova um robô usando L (gira 90 graus à esquerda), R (gira 90 graus à direita) e A (avança um passo). Girar não move o robô. O eixo x positivo aponta para leste e o eixo y positivo aponta para norte. As direções são codificadas como 0 = norte, 1 = leste, 2 = sul, 3 = oeste. Não há obstáculos ou limites.

Implemente robot_command_simulator(x, y, direction, commands).

Entrada

x: Coordenada horizontal inicial.

y: Coordenada vertical inicial.

direction: Direção inicial: 0 norte, 1 leste, 2 sul, 3 oeste.

commands: Comandos a serem processados da esquerda para a direita.

Saída

Retorne [final_x, final_y, final_direction], usando a mesma codificação de direção.

Restrições

−1.000.000.000 ≤ x, y iniciais ≤ 1.000.000.000. Direção é 0…3. Há 0…100.000 comandos, cada um sendo L, R ou A maiúsculo.

Exemplos

Exemplo 1
Entrada:
x = 0
y = 0
commands = "RAALA"
direction = 0

Saída esperada:
expected = [2, 1, 0]
Entrada:
long long x = 0;
long long y = 0;
std::string commands = "RAALA";
long long direction = 0;

Saída esperada:
std::vector<long long> expected = {2, 1, 0};
Entrada:
long x = 0;
long y = 0;
string commands = "RAALA";
long direction = 0;

Saída esperada:
long[] expected = new long[] {2, 1, 0};

Explicação

Vira para leste, avança duas vezes até (2, 0), vira para norte e então avança até (2, 1). Direção 0 significa norte.

Exemplo 2
Entrada:
x = 3
y = -2
commands = "LLLL"
direction = 1

Saída esperada:
expected = [3, -2, 1]
Entrada:
long long x = 3;
long long y = -2;
std::string commands = "LLLL";
long long direction = 1;

Saída esperada:
std::vector<long long> expected = {3, -2, 1};
Entrada:
long x = 3;
long y = -2;
string commands = "LLLL";
long direction = 1;

Saída esperada:
long[] expected = new long[] {3, -2, 1};

Explicação

Quatro giros à esquerda restauram a direção original (1), voltando a apontar para leste. Girar nunca altera as coordenadas.

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.