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