单排leetcode(python3)-机器人大冒险.py

class Solution:
    def robot(self, command: str, obstacles, x: int, y: int):
        newO = []
        for o in obstacles:
            if o[0] > x or o[1] > y:
                continue
            else:
                newO.append(o)

        xx = 0
        yy = 0
        for s in command:
            if s == "U":
                yy += 1
            else:
                xx += 1
        if self.reach(x,y,xx,yy,command):
            for o in newO:
                if self.reach(o[0],o[1],xx,yy,command):
                    return False
            return True
        else:
            return False

        
    def reach(self, x1,y1,xx,yy,command):
        start = int((x1+y1)/(xx+yy))
        point = [start*xx, start*yy]
        step = (x1+y1)%(xx+yy)
        if step != 0:
            for s in command[:step]:
                if s == "U":
                    point[1] += 1
                else:
                    point[0] += 1
        if x1 == point[0] and y1 == point[1]:
            return True
        else:
            return False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值