原理很简单,正好走了一圈的时候,上下抵消,左右抵消,所以只需要统计上下和左右的步数,不能抵消则不是一个圈
1. Python 3 代码
class Solution:
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
moves = moves.upper()
Lcount, Rcount, Ucount, Dcount = 0,0,0,0
for item in moves:
if item == 'L':
Lcount += 1
elif item == 'R':
Rcount += 1
elif item == 'U':
Ucount += 1
elif item == 'D':
Dcount += 1
if (Lcount ==Rcount) and (Ucount == Dcount):
return True
return False
2. C# 代码
public class Solution {
public bool JudgeCircle(string moves) {
int Lcount = 0, Rcount = 0, Ucount = 0, Dcount = 0;
moves = moves.ToUpper();
for(int i=0;i<moves.Length;i++)
{
switch(moves[i])
{
case 'L':
++Lcount;
break;
case 'R':
++Rcount;
break;
case 'U':
++Ucount;
break;
case 'D':
++Dcount;
break;
default:
break;
}
}
if(Lcount == Rcount && Ucount == Dcount)
{
return true;
}
return false;
}
}
本文介绍了一个简单的方法来判断根据一系列上(U)、下(D)、左(L)、右(R)的移动指令,最终位置是否回到了起点。通过统计各方向的移动次数,并对比相反方向的次数是否相等,可以快速得出结论。
1245

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



