|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
毕设老师完全放养 只说让学一下python 刚看两天基础知识。。。老师让一边找程序一边学 有大佬简单讲一下这段的功能嘛看 为什么运行会 Process finished with exit code 0 呢 5555
class Solution:
def robotSim(self, commands, ob):
"""
:type commands: List[int]
:type obstacles: List[List[int]]
:rtype: int
"""
origin = [0, 0]
drection = 40
result = 0
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
for i in commands:
if i == -1:
drection = (drection + 1) % 4
elif i == -2:
drection = (drection - 1) % 4
else:
d = drection % 4
for j in range(i):
if [origin[0] + dx[d], origin[1] + dy[d]] in ob:
break
origin = [origin[0] + dx[d], origin[1] + dy[d]]
result = max(pow(origin[0], 2) + pow(origin[1], 2), result)
return result
我猜你没有正确应用这个程序,不知道你在哪个ide下运行, Process finished with exit code 0就是告诉你进程执行完毕返回代码0,这个就是说没有错误运行完进程,说明至少没表面上的、语法上的错误。
这是个类,运行后不会有任何反应,需要实例化才能调用:
- >>> %Run test.py
- >>> a=Solution()
- >>> a.robotSim([1,-2,3,-1,2],[[2,3],[4,5],[6.7]])
- 9
复制代码
这个程序是个机器人避障模拟程序,参数1是一组整数列表,是机器人移动指令,参数2是一组由若干两位整数的列表组成的列表,代表障碍坐标,返回值是一个整数。我吧我能看懂的部份做了注释,有点强迫症,把一个错误单词direction给改了一下:
- class Solution:
- def robotSim(self, commands, ob):
- """
- :type commands: List[int]
- :type obstacles: List[List[int]]
- :rtype: int
- """
- origin = [0, 0] #原始位置
- direction = 40 #圆形方向值,其实和0一样
- result = 0 #返回结果
- dx = [0, 1, 0, -1] #x轴移动方向
- dy = [1, 0, -1, 0] #y轴移动方向
- for i in commands:
- if i == -1:
- direction = (direction + 1) % 4 #-1表明调整方向为顺时针90°
- elif i == -2:
- direction = (direction - 1) % 4 #-2表明调整方向为逆时针90°
- else:
- d = direction % 4 #除4求模得到0,1,2,3代表走位
- for j in range(i): #非-1-2表示步数
- if [origin[0] + dx[d], origin[1] + dy[d]] in ob: #如果移动后的坐标在障碍表里,表明碰到障碍,退出本次循环,本步作废
- break
- origin = [origin[0] + dx[d], origin[1] + dy[d]] #进行一次移动,修改坐标
- result = max(pow(origin[0], 2) + pow(origin[1], 2), result) #坐标的平方和?看不懂!和上一轮result值比较取较大值
- return result
复制代码
|
|