• 面试题


    某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(x=0,y=0)并规定,每向东增加100米,x加1,每向北增加100米,y加1。同时,我军情报部门也破译了敌军向坦克发送的指挥信号,其中有三种信号(L,R,M)用于控制坦克的运动,L 和 R 分别表示使令坦克向左、向右转向,M 表示令坦克直线开进100米,其它信号如T用于时间同步,P用于位置较准。

    一日,我军侦察兵发现了敌军的一辆坦克,侦察兵立即将坦克所在坐标(P, Q)及坦克前进方向(W:西,E:东,N:北,S:南)发送给指挥部,同时启动信号接收器,将坦克接收到的信号实时同步发往指挥部,指挥部根据这些信息得以实时掌控了该坦克的位置,并使用榴弹炮精准地击毁了该坦克。

    请设计合理的数据结构和算法,根据坦克接收到的信号,推断出坦克所在的位置。
    设计时请考虑可能的扩展情况,并体现出您的设计风格。

    假设,侦察兵发送给指挥部的信息如下:
    坦克坐标:(11,39)
    坦克运行方向:W
    坦克接收到的信号为:MTMPRPMTMLMRPRMTPLMMTLMRRMP
    其位置应该是(9,43),运动方向为E

    class Tanke(object):
        def __init__(self,x,y,ori):
            self.x = x
            self.y = y
            self.ori = ori
     
        def move(self,arg):
            ls = ['E','N','W','S']
            q = ls.index(self.ori)
            if arg == 'L':
                q += 1
                q = q%4
                self.ori = ls[q]
            elif arg == 'R' :
                q -= 1
                q = q%4
                self.ori = ls[q]
            if arg == 'P' or arg == 'T':
                pass
            if arg == 'M' :
                if ls[q] == 'W' :
                    self.x -= 1
                elif ls[q] == 'N' :
                    self.y +=1
                elif ls[q] == 'E' :
                    self.x += 1
                elif ls[q] == 'S' :
                    self.y -= 1
     
    tanke = Tanke(11,39,'W')
     
    p = 'MTMPRPMTMLMRPRMTPLMMTLMRRMP'
    o = 0
    for i in p :
        tanke.move(i)
        print('坦克坐标是({},{}),方向是{}'.format(tanke.x, tanke.y, tanke.ori))
        o += 1
    print()
    print('*************************')
    print(o,len(p))
    print('*************************')
    print('坦克坐标是({},{}),方向是{}'.format(tanke.x,tanke.y,tanke.ori))

    .python代码得到列表list的交集与差集
    交集

    b1=[1,2,3]
    b2=[2,3,4]
    b3 = [val for val in b1 if val in b2]
    print b3

    map、reduce、filter的用法和区别

    map函数是对一个序列都执行同一个函数
    reduce函数是对一个可迭代对象中的第一项和第二项执行一个函数,在将函数返回值和第三项进行函数运算,函数内有两个参数
    filter函数是对一个可迭代对象进行函数运算,将返回True的项输出出来,函数的返回值只能是True或False
  • 相关阅读:
    ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)
    运维标准化与流程化建设
    运维与自动化运维发展方向
    文件atime未变问题的研究
    ansible 任务委派 delegate_to
    ansible 调优
    windows中安装模拟器后修改模拟器中的hosts方法
    负载均衡服务器主要考量三个指标
    DRBD+NFS+Keepalived高可用环境
    sshpass
  • 原文地址:https://www.cnblogs.com/mabaohua/p/10178984.html
Copyright © 2020-2023  润新知