第二週演算法作業

2021-10-22 19:01:53 字數 3328 閱讀 8826

將數字轉化成字串,然後再轉化成列表,利用列表的反轉函式進行反轉,最後轉換回數字
class

solution

(object):

defreverse

(self, x)

:"""

:type x: int

:rtype: int

"""isneg=

false

if x<0:

isneg =

true

x =-x

reverse_x_list=

list

(str

(x))

reverse_x_list.reverse(

) reverse_x_str =

"".join(reverse_x_list)

reverse_x =

int(reverse_x_str)

if isneg:

reverse_x =

-reverse_x

if reverse_x<

-pow(2

,31)or reverse_x>

pow(2,

31)-1

:return

0return reverse_x

通常情況下,羅馬數字中小的數字在大的數字的右邊。

因此先處理羅馬數字中小的數字在大的數字的左邊的特例,然後再針對普通情況進行處理。

class

solution

(object):

defromantoint

(self, s)

:"""

:type s: str

:rtype: int

"""num =

0 s_list =

list

(s)for i in

range

(len

(s_list)-1

):if s_list[i]

=='i'

:if s_list[i+1]

=='v'

: num = num+

4 s_list[i]

, s_list[i+1]

=none

,none

elif s_list[i+1]

=='x'

: num = num +

9 s_list[i]

, s_list[i+1]

=none

,none

if s_list[i]

=='x'

:if s_list[i+1]

=='l'

: num = num+

40 s_list[i]

, s_list[i+1]

=none

,none

elif s_list[i+1]

=='c'

: num = num +

90 s_list[i]

, s_list[i+1]

=none

,none

if s_list[i]

=='c'

:if s_list[i+1]

=='d'

: num = num+

400 s_list[i]

, s_list[i+1]

=none

,none

elif s_list[i+1]

=='m'

: num = num +

900 s_list[i]

, s_list[i+1]

=none

,none

for i in

range

(len

(s_list)):

if s_list[i]

=='i'

: num = num +

1if s_list[i]

=='v'

: num = num +

5if s_list[i]

=='x'

: num = num +

10if s_list[i]

=='l'

: num = num +

50if s_list[i]

=='c'

: num = num +

100if s_list[i]

=='d'

: num = num +

500if s_list[i]

=='m'

: num = num +

1000

return num

模擬加法進製的過程,從低位往高位進製。
class

solution

(object):

defplusone

(self, digits)

:"""

:type digits: list[int]

:rtype: list[int]

"""#不包括digits[0]

for i in

range

(len

(digits)-1

,0,-

1):if digits[i]!=9

: digits[i]

=digits[i]+1

return digits

else

: digits[i]=0

if digits[0]

!=9: digits[0]

= digits[0]

+1return digits

digits[0]

=0digits.insert(0,

1)return digits

演算法第二週作業01

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。對於左上角的元素 array i j 其中 i 0 j array 0 length 它下方的數值都比它大 就是說它所在列中是最大的 ...

演算法第二週作業04

乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。solutions 青蛙要想跳到target級台階,她可以從第0個台階直接 一次 跳到target級,或者從第1級台階直接跳到target級,或者直接從第target 1級台階直接跳到targ...

第二週作業

實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式 功能 顯示輸出班級 姓名 學號 includ...