题目描述
机器人一开始站在原点,可以上下左右(分别用“UDLR”表示)移动,每次移动一步。Estrella想知道对于某个指令序列,如果把某一种指令全部替换成另一种指令,新的指令序列可以让机器人回到原点。
输入
存在多个样例,每个样例一行,为一条指令序列,长度不超过200。
输出
每行输出一个样例的结果,可以输出“Yes”,否则输出“No”。
样例输入
LD LLDDD样例输出
Yes No
解题思路: 注意这题就和 1252-Robot 左转右转不一样咯,这里左右就是直接移动了。一个L指令,机器人就左移一格,一个R指令,机器人就右移一个。 那么,机器人要如何在所有指令完成后,才能回到原点? 这是不是很简单,就是 L指令数 = R指令数, U指令数 = D指令数(左右抵消,上下抵消。)
知道如何回到原点,现在只是多加了个条件:把其中一个指令,更改为另一个指令。那还不是一样,只要保证最后 还是满足 L = R,U = D等式就行了。
AC代码:
#include <stdio.h>
#include <string.h>
char command[210];
int len,numL,numR,numU,numD;
int main()
{
while ( scanf("%s",command) != EOF)
{
len = strlen(command);
numL = numR = numU = numD = 0;
for (int i = 0; i < len; i ++) // 统计各指令数量
{
if (co

博客围绕机器人移动指令序列问题展开。机器人初始在原点,按“UDLR”指令移动。题目要求判断将某一种指令全部替换成另一种指令后,新指令序列能否让机器人回到原点。解题关键是保证替换后L指令数等于R指令数,U指令数等于D指令数。
最低0.47元/天 解锁文章
1820

被折叠的 条评论
为什么被折叠?



