題目:
請你僅使用兩個棧實現先入先出佇列。佇列應當支援一般佇列的支援的所有操作(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...