坦克問題與蓄水問題

問題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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章