python面試題兩道

2021-10-05 00:14:56 字數 2887 閱讀 2100

"""

給乙個字串"123456789",

在任意字元中間插入「+」、「-」、「*」、「/」四種運算子,使最後的計算結果等於50。

例如你可以如此插入:1* -56-7+89,使這個式子的最終結果等於50。

輸出所有可能的式子結果。

"""def

make_50

(self)

->

list

:str

=list

(self)

spr =

['+'

,'-'

,'*'

,'/',''

] sum_50 =

for a in spr:

for b in spr:

for c in spr:

for d in spr:

for e in spr:

for f in spr:

for g in spr:

for h in spr:

sum=

str[0]

+ a +

str[1]

+ b +

str[2]

+ c +

str[3]

+ d +

str[4]

+ e +

str[5]

+ f +

str[6]

+ g +

str[7]

+ h +

str[8]

ifeval

(sum)==

50:print

(sum

)sum

)return sum_50

# 不要修改下面的部分

if __name__ ==

"__main__"

: results = make_50(

"123456789"

)for result in results:

assert

eval

(result)

==50

print

("ok"

)

"""

我們知道 2 進製數字由 2 種字元(01)組成,10 進製數字由 10 種字元(0123456789)組成,16 進製由 16 種字元(0123456789abcdef)。不同進製的數字之間可以相互轉換。

我們定義一種 "十二地支進製" 數字,這種數字由中國古代地支的 12 種字元(子、醜、寅、卯、辰、巳、午、未、申、酉、戌、亥)組成。"十二地支進製" 數字和 10 進製數字的關係可以看下面的**。

請實現 10 進製數字和 "十二地支進製" 數字之間的轉換函式。不需要考慮負數。

"""def

int10_to_dizhi

(int10:

int)

->

str:

# 在這裡完成你的**

d =['子'

,'醜'

,'寅'

,'卯'

,'辰'

,'巳'

,'午'

,'未'

,'申'

,'酉'

,'戌'

,'亥'

] num =

while int10 //

12>=0:

a = int10 //

12 b = int10 %

12 int10 = a

if int10 ==0:

break

num.reverse(

) dizhi =

''for i in num:

dizhi = dizhi + d[i]

return dizhi

defdizhi_to_int10

(dizhi:

str)

->

int:

# 在這裡完成你的**

d =dz_list =

list

(dizhi)

length =

len(dz_list)

int10 =

0#計算結果

for i in

range

(length)

: int10 = int10 + d[dz_list[i]]*

12**

(length - i -1)

return int10

# 不要修改下面的部分

if __name__ ==

"__main__"

:for dizhi, int10 in[[

"子",0]

,["醜",1]

,["寅",2]

,["卯",3]

,["辰",4]

,["巳",5]

,["午",6]

,["未",7]

,["申",8]

,["酉",9]

,["戌",10]

,["亥",11]

,["醜子",12

],["醜醜",13

],["丑寅",14

],["醜卯",15

],["丑寅子卯"

,2019],

]:print

("{} <=> {}:"

.format

(dizhi, int10)

, end=

" ")

assert dizhi_to_int10(dizhi)

== int10

assert int10_to_dizhi(int10)

== dizhi

print

("ok"

)

兩道SQL面試題

第一是.關於加班時間的問題 公司規定一周內最多只能加班和12個小時,多餘的要去掉,去掉的規則是 某天加班超過1h的才能去,而且是依次大致平均的去,最小單位是1小時 舉例 日期 工號 加班小時 周一 a001 6 周二 a001 2 週三 a001 1 周四 a001 5 周五 a001 7 共計加班...

兩道概率面試題

問題一 一根一公尺長的繩子,隨機斷成三段 求最短的一段的期望長度以及最長的一段的期望長度。分析 這道題實際是一道純粹的概率題,沒有太多技巧。自己有推導,但是概率論忘得差不多了,退出來的概率有點詭異 以後補充一下知識,再推導。先放一下 陳利人 給出的答案吧,比較簡略 有時間,我會補充乙個詳細的。問題二...

從兩道面試題說起

一提到block大家肯定都知道要說的是迴圈引用。在arc中,如果兩個物件相互持有對方,就會造成迴圈引用,導致記憶體無法釋放。在block中,最常用的場景則是,self持有block,block中又持有了self。例如下方一段 property nonatmaic,copy block datacha...