每日程式設計題 06

2021-10-18 19:29:43 字數 2123 閱讀 7203

所有題目還是採用python進行解答的哦!

今天的題目相對來說比較簡單,也有很多種解決方法,我只是給出了一些方法,大家可以多多查查,希望一起交流學習。

def

forsolve

(n):

# for迴圈

s =1if n ==0:

return

1else

:for i in

range(1

,n+1):

s *= i

return s

空間複雜度會相對for更大,使用遞迴**更加簡單

def

recursive

(n):

# 遞迴想法

if n ==0:

return

1else

:return n * recurssive(n-

1)

python遞迴有上限!!! 小心使用

def

fibonacil1

(n):

# o(2^n)

assert

(n>=0)

if(n <=2)

:return

1else

:return fibonacil1(n-1)

+ fibonacil1(n-

2)

def

fibonacil2

(n):

# o(n)

assert

(n>=2)

a =1, b =

0for i in

range(1

,n+1):

a,b = b, a+b

return a

1

1 2 1

1 2 1 3 1 2 1

def

print_

(n):

# o(2^n)

assert

(n>=0)

if n ==1:

return

"1"else

:return print_(n-1)

+" "

+str

(n)+

" "+ print_(n-

1)

def

print_1

(n):

# o(n)

assert

(n>=0)

if n ==1:

return

"1" t = print_1(n-1)

return t +

" "+

str(n)

+" "

+ t

def

print_2

(n):

# o(n)

assert

(n>=0)

result =

""for i in

range(1

,n+1):

result = result +

str(i)

+" "

+ result

return result

判斷四種情況,相同,奇數,小於二倍,大於二倍

def

seq(a,b):if

(a == b)

:return

str(a)

if(b %2==

1):return

"("+ seq(a,b-1)

+" + 1)"

if(b <

2*a)

:return

"("+ seq(a,b-1)

+" + 1)"

return

(a,b/2)

+"* 2"

a =5;

b =23

;print

(str

(b)+

" = "

+ intseq(a, b)

)

每日一題 06

946.驗證棧序列 難度中等88收藏分享切換為英文關注反饋 給定pushed和popped兩個序列,每個序列中的值都不重複,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回true 否則,返回false。示例 1 輸入 pushed 1,2,3,4,5 pop...

每日一題 06

面試題46.把數字翻譯成字串 難度中等87收藏分享切換為英文關注反饋 給定乙個數字,我們按照如下規則把它翻譯為字串 0 翻譯成 a 1 翻譯成 b 11 翻譯成 l 25 翻譯成 z 乙個數字可能有多個翻譯。請程式設計實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。示例 1 輸入 12258輸...

每日程式設計題 03

所有題目實現都是採用python 在乙個m行n列的矩陣中,如果查詢到乙個元素為 0 將其所在的行和列的元素都設為 0 需要考慮乙個記錄矩陣,一般都會考慮m行n列的,但是可以行列分開考慮,這樣會減少空間複雜度,只需要 m n def myzero matrix m none len matrix n ...