坦克問題與蓄水問題

2022-03-23 08:38:54 字數 2349 閱讀 3674

問題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 = 3location =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求出被水填滿區域面積的相關邏輯

演算法 蓄水問題

問題 給定乙個陣列,想象成乙個桶。問最多能裝多少水?例 1,5,3,6 最多裝2格水 oo o o o o o o o o o o o o o 解題思路 我們把每一列當成一塊板,根據分析,第一塊板和最後一塊板一定不能蓄水,所以問題變成了所有板所能蓄水最大值的總和。先明確這個思路,之後再想辦法。那麼如...

蓄水池問題

蓄水池問題描述 假設有n個數,從中隨機抽取k個數字,如果保證抽取的過程是等概率的?其中n是不固定的 類似問題 1.從100個數字抽取20個,如果向100個數字中再增加20個呢?2.給你乙個長度為n的鍊錶,n很大,但你不知道n有多大,你的任務是從這n個元素中取出k個元素,你只能遍歷一次這個鍊錶,演算法...

水 water 積水問題 蓄水問題

題目描述 有一塊矩形土地被劃分成 n m 個正方形小塊。這些小塊高低不平,每一小塊都有自己的高度。水流可以由任意一塊地流向周圍四個方向的四塊地中,但是不能直接流入對角相連的小塊中。一場大雨後,由於地勢高低不同,許多地方都積存了不少降水。假如你已經知道這塊土地的詳細資訊,你能求出每個小塊的積水高度嗎?...