設定標誌位flag判斷是否進入注釋部分,注釋的開始和取消來自於棧comment的實現。
def
backup_note
(seq)
: res =
comment =
flag =
false
for su in seq:
ifnot flag:
if su.islower():
elif su ==
'<'
:if res:
res.pop(
)elif su ==
'(':
flag =
true
else
:if su ==
'(':
elif su ==
')':
comment.pop()if
not comment:
flag =
false
return res
if __name__ ==
'__main__'
: seq =
list
(input()
.strip())
res = backup_note(seq)
print(''
.join(res)
)
採用層次遍歷,向外發散,逐層淹過。筆試的時候是通過額外的self.all集合來進行篩選的,最終結果是54%(超時)。想了想,可以設定為其他符號避免再次訪問即可。
from collections import deque
class
solution
:def
__init__
(self)
: self.res =
self.matrix =
none
self.t_row =
none
self.t_col =
none
defexplore_game
(self, seq, n)
:if self.matrix is
none
: self.matrix = seq
sr, sc = self.find_start(n)
self.t_row, self.t_col = self.find_end(n)
return self.moving(sr, sc, n)
deffind_start
(self, n)
:for row in
range
(n):
for col in
range
(n):
if self.matrix[row]
[col]
=='s'
:return row, col
deffind_end
(self, n)
:for row in
range
(n):
for col in
range
(n):
if self.matrix[row]
[col]
=='e'
:return row, col
defmoving
(self, row, col, n)
: visited = deque()[
(row, col)])
count =
0while visited:
current = visited.pop(
) values =
set(
)for cu in current:
r, c = cu[0]
, cu[1]
if r == self.t_row and c == self.t_col:
return count
if self.matrix[
(r+1
)%n]
[c]in
'.e'
: values.add(
((r+1)
%n, c)
) self.matrix[
(r +1)
% n]
[c]=
'*'if self.matrix[
(r-1
)%n]
[c]in
'.e'
: values.add(
((r-1)
%n, c)
) self.matrix[
(r -1)
% n]
[c]=
'*'if self.matrix[r]
[(c+1)
%n]in
'.e'
: values.add(
(r,(c+1)
%n))
self.matrix[r]
[(c +1)
% n]
='*'
if self.matrix[r]
[(c-1)
%n]in
'.e'
: values.add(
(r,(c-1)
%n))
self.matrix[r]
[(c -1)
% n]
='*'
list
(values)
) count +=
1return-1
if __name__ ==
'__main__'
: n =
int(
input()
.strip())
seq =
for _ in
range
(n):
[iu for iu in
input()
.strip()]
) st = solution(
)print
(st.explore_game(seq, n)
)
建立元組列表依次追加輸入寶物的稀有度和實用度組成的元組,通過集合化排除相同的寶物干擾,按照第乙個元素即稀有度排序,之後的問題便是乙個最長遞增子串行lis問題了。最終結果是64%(超時)。
from bisect import bisect
defprofit
(seq):if
not seq:
return
0 seq =
list
(set
(seq)
) seq.sort(
)
values =
[su[1]
for su in seq]
end =
for val in values:
idx = bisect(end, val)
if idx ==
len(end)
:else
: end[idx]
= val
return
len(end)
if __name__ ==
'__main__'
: n =
int(
input()
.strip())
seq =
for _ in
range
(n):
tuple
(map
(int
,input()
.strip(
).split())
))res = profit(seq)
print
(res)
(最近更新:2023年09月03日) 小紅書9 3筆試
1.題目描述 薯隊長寫了一篇筆記草稿,請你幫忙輸出最後內容。輸入字元包括英文本元,和 英文本元表示筆記內容。之間表示注釋內容,任何字元都無效。括號保證成對出現。表示退格,刪去前面乙個筆記內容字元。括號不受 影響 輸入輸入一行字串。長度 10000.輸出輸出一行字串,表示最終的筆記內容。樣例輸入 a ...
小紅書0906筆試
題目 輸入終點x 輸入每天最小航速l,最大航速t和資料組數n 然後有n個數字,每個數字代表座標位置處是危險區域 求到達終點最少停留在危險區域的次數 例如 輸入 102 3 4 5 4 2 3 輸出1 還沒驗證過。include include include include include usin...
牛客小紅書資料分析筆試題1 19
1 分析方法 漏斗分析 展現出各個階段的轉化率,通過漏斗各環節相關資料的比較,能夠直觀地發現和說明問題所在,從而找到優化方向。a b 測試 同乙個目標制定兩個方案,讓一部分使用者使用 a 方案,另一部分使用者使用 b 方案,記錄下使用者的使用情況,看哪個方案更符合設計。內外因分析法 申論答題思路,內...