實現快速排序
quicksort =
lambda x:
iflen
( x )
==0 \
else quicksort(
[s for s in x[1:
]if s <= x[0]
])+ \ [x[0]
]+ quicksort(
[s for s in x[1:
]if s > x[0]
])
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭
class
listnode
:def
__init__
(self, x)
: self.val = x
self.
next
=none
defreverselist
(phead):if
not phead:
return
none
head = listnode(0)
head.
next
= phead
p = phead
while
(p.next):
tp = p.
next
p.next
= p.
next
.next
tp.next
= head.
next
head.
next
= tp
return head.
next
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba
def
helper
(s):
iflen
(s)==1:
return s[0]
res =
for i in
range
(len
(s))
: l = helper(s[
:i]+ s[i+1:
])for j in l:
+ j)
return res
defpermutation
(ss):if
not ss:
return
words =
list
(ss)
return
list
(sorted
(set
(helper(words)))
)print
(permutation(
'aabbccd'
))
給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4
# 返回對應節點treenode
defkthnode
(self, proot, k)
:# write code here
ifnot proot:
return
none
stack =
while proot or stack:
while proot:
proot = proot.left
proot = stack.pop(
) k -=
1if k ==0:
return proot
proot = proot.right
翻轉這些句子順序,但是單詞中的字母順序不變,如:」i am a student.」 → 「student. a am i」¶
def
reversesentence
(self, s)
: stack =
[n for n in s.split(
' ')
] stack.reverse(
)return
' '.join(stack)
print
(solution(
).reversesentence(
"i am a student."
))
求兩個字串的最長公共子串長度。如: a=」abcd」, b=」abcr」,則最長公共子串長度為3
def
find_lcsubstr
(s1, s2)
: m =[[
0for i in
range
(len
(s2)+1
)]for j in
range
(len
(s1)+1
)]mmax =
0for i in
range
(len
(s1)):
for j in
range
(len
(s2)):
if s1[i]
== s2[j]
: m[i +1]
[j +1]
= m[i]
[j]+
1 mmax =
max(mmax, m[i +1]
[j +1]
)return mmax
print
(find_lcsubstr(
"abcd"
,"abcr"
))
資料結構與演算法 演算法 演算法和資料結構
資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...
資料結構 資料結構與演算法01
1 求一組整數中的最大值。演算法 基本操作是 比較兩個數的大小 模型 仔細想想 你並不知道這個整數到底是多大?整數過大你該怎麼去表示?2 足協的資料庫管理的程式 演算法 需要管理的專案?如何管理?使用者介面?模型 3 資料與資料結構 資料 所有能被輸入到計算機中,並被計算機處理的符號的集合計算機操作...
資料結構 資料結構與演算法02
1 演算法設計的原則 設計演算法時,通常應考慮達到以下目標 1,正確性 2,可讀性 3,健壯性 4,高效率與低儲存量需求 1,正確性 規格說明 四個層次 a,程式中不含語法錯誤 b,程式對於幾組輸入資料能夠得出滿足要求的結果 c,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...