码迷,mamicode.com
首页 > 其他好文 > 详细

面试题

时间:2018-12-26 15:59:14      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:时间   假设   lse   family   运算   pass   使用   其它   输出   

某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(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

 

面试题

标签:时间   假设   lse   family   运算   pass   使用   其它   输出   

原文地址:https://www.cnblogs.com/mabaohua/p/10178984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!