leetcode 657. Judge Route Circle

|

문제출처

문제

Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.

The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.

Example 1:

Input: "UD"
Output: true

Example 2:

Input: "LL"
Output: false

풀이코드

• 풀이 1
def judge_circle(moves):
"""
:type moves: str
:rtype: bool
"""
location = [0, 0]
for direction in moves:
if direction == "R":
loaction += 1
if direction == "L":
loaction -= 1
if direction == "U":
loaction += 1
if direction == "D":
loaction -= 1
return True if location.count(0) == 2 else False

• 풀이 2
def judge_circle(moves):
"""
:type moves: str
:rtype: bool
"""
location = [0, 0]
dic = {
"R": [0, 1],
"L": [0, -1],
"U": [1, 0],
"D": [-1, 0]
}
for direction in moves:
location = [a+b for a, b in zip(location, dic[direction])]
return True if location.count(0) == 2 else False

다른사람풀이

• 간단하다! 앞으로는 좀 쉽게 생각해보자
def judge_circle(moves):
"""
:type moves: str
:rtype: bool
"""
return moves.count("U")==moves.count("D") and moves.count("L")==moves.count("R")