日誌3月5日

2021-10-21 03:50:36 字數 4844 閱讀 2456

題目:

請你僅使用兩個棧實現先入先出佇列。佇列應當支援一般佇列的支援的所有操作(push、pop、peek、empty)

class

myqueue

(object):

def__init__

(self)

: self.stack1 =

self.stack2 =

defpush

(self, x)

:def

pop(self):if

not self.stack2:

while self.stack1:))

return self.stack2.pop(

)def

peek

(self):if

not self.stack2:

while self.stack1:))

return self.stack2[-1

]def

empty

(self)

:return

not self.stack1 and

not self.stack2

輸入數字 n,按順序列印出從 1 到最大的 n 位十進位制數。比如輸入 3,則列印出 1、2、3 一直到最大的 3 位數 999。

class

solution

:def

printnumbers

(self, n:

int)

-> list[

int]

: out_list =

list()

for i in

range(1

,10**n)

:return out_list

class

solution

:def

printnumbers

(self, n:

int)

-> list[

int]

:return

list

(range(1

,10**n)

)

給定兩個由小寫字母構成的字串 a 和 b ,只要我們可以通過交換 a 中的兩個字母得到與 b 相等的結果,就返回 true ;否則返回 false 。

class

solution

(object):

defbuddystrings

(self, a, b):if

len(a)

!=len

(b):

return

false

if a == b and

len(

set(a)

)<

len(a)

:return

true

dif =

[(a, b)

for a, b in

zip(a, b)

if a != b]

return

len(dif)==2

and dif[0]

== dif[1]

[::-

1]

在乙個 平衡字串 中,『l』 和 『r』 字元的數量是相同的。

給你乙個平衡字串 s,請你將它分割成盡可能多的平衡字串。

返回可以通過分割得到的平衡字串的 最大數量 。

class

solution

:def

balancedstringsplit

(self, s:

str)

->

int:

res, count =0,

0for i in s:

if i ==

'r':

count+=

1if i ==

'l':

count-=

1if count ==0:

res +=

1return res

class

solution

:def

balancedstringsplit

(self, s:

str)

->

int:

res =

0 num =

0for ch in s:

if ch ==

'l':

num +=

1if num ==0:

res +=

1else

: num -=

1if num ==0:

res +=

1return res

有效括號字串為空 ("")、"(" + a + 「)」 或 a + b,其中 a 和 b 都是有效的括號字串,+ 代表字串的連線。例如,"","()","(())()" 和 「(()(()))」 都是有效的括號字串。

如果有效字串 s 非空,且不存在將其拆分為 s = a+b 的方法,我們稱其為原語(primitive),其中 a 和 b 都是非空有效括號字串。

給出乙個非空有效字串 s,考慮將其進行原語化分解,使得:s = p_1 + p_2 + … + p_k,其中 p_i 是有效括號字串原語。

對 s 進行原語化分解,刪除分解中每個原語字串的最外層括號,返回 s。

class

solution

:def

removeouterparentheses

(self, s:

str)

->

str:

l =0 res =

''for c in s:

if c ==

'(':

l +=

1if l >1:

res += c

else

:if l >1:

res += c

l -=

1return res

class

solution

:def

removeouterparentheses

(self, s:

str)

->

str:

stack =

result =

''for i in s:

if i ==

'(':

iflen

(stack)

>1:

result +=

'('else

: stack.pop()if

len(stack)!=0

: result +=

')'return result

給你乙個整數陣列 nums 。陣列中唯一元素是那些只出現 恰好一次 的元素。請你返回 nums 中唯一元素的 和 。

class

solution

:def

sumofunique

(self, nums: list[

int])-

>

int:

answer =

0for i in nums:

if nums.count(i)==1

: answer += i

return answer

class

solution

:def

sumofunique

(self, nums: list[

int])-

>

int:

countdict=

dict()

sum_num=

0for num in nums:

if(num not

in countdict)

: countdict[num]=1

sum_num+=num

elif

(countdict[num]

>=2)

:continue

else

: countdict[num]+=1

sum_num-=num

return sum_num

在二維平面上,有乙個機械人從原點 (0, 0) 開始。給出它的移動順序,判斷這個機械人在完成移動後是否在 (0, 0) 處結束。

class

solution

:def

judgecircle

(self, moves:

str)

->

bool

: moves =

list

(moves)

s=[0

,0]for c in moves:

if c==

'r':

s[0]

+=1elif c==

'l':

s[0]

-=1elif c==

'u':

s[1]

+=1else

: s[1]

-=1if s==[0

,0]:

return

true

return

false

日誌3月18日

題目 給你單鏈表的頭指標 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 class solution object defreversebetween self,head,left,right...

3月5日總結

通用資料同步這個東西做下來 雖然還有問題沒有解決 感覺收穫最大的是測試時不要在真實的資料庫裡測試和sql語句不要寫在迴圈裡。這次更新set錶出問題,真是給了我乙個很大的教訓,有時候太自以為是了,有些問題不能想當然,做開發還是要一步一步謹慎著來,因為本地沒法測試,所以直接在伺服器上來,想著更新語句應該...

學習日誌 5月22日

今天看了itemcf的 有很多看不懂的地方,改天留著請教其他人 coding utf 8 import random import time import math from operator import itemgetter class itembasedcf 初始化引數 definit sel...