10. Robot Return to Origin

Title:

There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

Example 1:

Input: "UD"
Output: true 
Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.

Example 2:

Note:

 The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

Analysis of Title:

It's easy. But there are some interesting methods.

Test case:

"UD"

Python:

Method one: Go through 4 times.

  return moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D')  

Mehtod two: Gothrough 1 times.

u,d,r,l=1,1,1,1
for i in moves:
  if i=='U':
    u+=1
  elif i=='D':
    d+=1
  elif i=='R':
    r+=1
  else:
    l+=1
  if d==u and r==l:
    return True
  return False

But this method uses too many variables and below this is better.

x, y = 0, 0
for i in moves:
  if i == "U":
    y += 1
  elif i == "D":
    y -= 1
  elif i == "R":
    x += 1
  elif i == "L":
    x -= 1
  if x == 0 and y == 0:
    return True
  else:
    return False

Analysis of Code:

Use less variables.

转载于:https://www.cnblogs.com/sxuer/p/10654218.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值