• 面试题


    某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(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
  • 相关阅读:
    印度、日本、美国和国内的软件企业的“软件态度”
    限制文本框每行输入的字符数的C#代码
    之我见:没有像样的需求分析、设计就草草开始分块写代码
    Excel 加载项的怪现象
    Excel加载项Dotfuscator注意点
    设计者应增加对本机缓存特性的注意度
    我们的产品有技术含量吗?
    阳光行为,阳光心情
    Google在中国境内设服务器?速度快极了!
    标准重要不重要:标准目录查询网页竟有这样的语句:见证中国目前的软件开发水平
  • 原文地址:https://www.cnblogs.com/mabaohua/p/10178984.html
Copyright © 2020-2023  润新知