专栏名称: 灰灰考研
最全的计算机软工考研专业课信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
目录
相关文章推荐
河南新闻广播  ·  国防预算公布!将如何安排? ·  昨天  
河南新闻广播  ·  “有人往海底捞火锅里小便”,警方通报来了 ·  2 天前  
河南新闻广播  ·  息屏24小时!姚明这份建议,热搜第一! ·  2 天前  
河南新闻广播  ·  微信宣布了 ·  3 天前  
51好读  ›  专栏  ›  灰灰考研

【每日编程-184期】机器人能否返回原点

灰灰考研  · 公众号  ·  · 2024-05-27 10:01

正文

每日编程中遇到任何疑问、意见、建议请公众号留言或直接撩 Q474356284( 备注每日编程 )

今日问题:

在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0,0) 处结束

移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R (右), L (左), U (上)和 D (下)。如果机器人在完成所有动作后返回原点,则返回 true 。否则,返回 false

注意: 机器人 面朝 的方向无关紧要。 “R” 将始终使机器人向右移动一次, “L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。

示例 1:

输入: "UD"
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true

示例 2:

输入: "LL"
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次移动的距离。我们返回 false,因为它在移动结束时没有返回原点。



解决方法:

算法思想:

定义两个方向计数器(实际上是四个,因为可正可负),来模拟上U下D左L右R四个方向。

U ,D使用v来记录,向上移动则v++,想下移动,则v--,当v为0,则在此方向上的位移为0.

L ,R使用h来记录,向左移动则h++,向右移动则h--,当h为0,则在此方向上的位移为0

使用switch语句来判断机器人的动作。

当两个方向的位移都为0则,机器人返回原点。


C++ 代码:


C 代码:


Java 代码:


明日题目预告:

数字的补数

给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。

注意 :

  1. 给定的整数保证在 32 位带符号整数的范围内。

  2. 你可以假定二进制数不包含前导零位。

示例 1:

输入 : 5

输出 : 2

解释







请到「今天看啥」查看全文