坦克问题与蓄水问题

问题1: 

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

说明:这里最主要的还是在方位上

代码

a = int(input('当前坦克位置横坐标:').strip())
b = int(input('当前坦克纵坐标:').strip())
c = input('当前方向:').strip()

l1 = ['W','S','E','N']
def locations(x,y,location):
    message = input('接收到的信号:').strip()
    for i in message:
        if i == 'R':
            index = l1.index(location)-1
            if index == -1:
                index = 3
            location = l1[index]
            continue
        if i == 'L':
            index = l1.index(location)+1
            if index == 4:
                index = 0
            location = l1[index]
            continue
        if i =='P' or i =='T':
            continue
        if location =='W':
            x-=1
        elif location =='S':
            y-=1
        elif location =='E':
            x+=1
        elif location =='N':
            y+=1
    print('当前坦克位置坐标:{},{}),当前方向{}'.format(x,y,location))

locations(a,b,c)
View Code

问题2:

"""
    有如下一组连续高度不一宽度是1的墙壁,可使用数组[1,3,4,3,28,10,9,19,22,3,34,55,43,21]表示,当
    下雨时,雨水会填满之间的空间,请使用Python求出被水填满区域面积的相关逻辑
"""

图片:

代码

lis = [1,3,4,3,28,10,9,19,22,3,34,55,43,21]
def water(li):
    total_water = 0
    for i in range(1,len(li)-1):
            left_max = max(li[0:i])
            right_max = max(li[i+1:])
            if left_max > li[i] and right_max > li[i]:
                contain_water = min(left_max,right_max) - li[i]
                total_water += contain_water
    return total_water

print(water(lis))
View Code

 

posted @ 2018-09-19 09:12  -Learning-  阅读(306)  评论(0编辑  收藏  举报