演算法面試題 阿里程式設計

2022-03-29 03:37:41 字數 978 閱讀 7890

題目沒截圖,口述大概吧。

給定乙個表示式,和乙個陣列,表示式中有n個缺失,在陣列中選擇n個分別填入缺失中,使得等式成立。

例子:3_*2=_2

1 3 6 8

輸出:31*2=62

選出的數不能重複,並且n不確定。

這個題目用python做是非常簡單的,因為python有eval方法來計算表示式的值。這個題首先是乙個深度優先搜尋演算法,可以用遞迴或者棧來做,遞迴的話就更簡單了。

直接給**:

1

defsearch(exp, nums):2if

'_'not

in exp or nums is

none:

3 exps = exp.split('='

)4if eval(exps[0]) == float(exps[1]):

5print exps[0]+'

='+exps[1]

6return

7else:8

for num in

nums:

9 e = exp.replace('

_', num, 1)

10 ns =nums[:]

11ns.remove(num)

12search(e, ns)

1314

15if

__name__ == '

__main__':

16 exp =raw_input()

17 nums = raw_input().split('')

18 search(exp, nums)

遞迴的終止條件是表示式中不包含"_"符號,如果不包含,使用eval計算表示式左邊的值,和右邊進行比較,相等則輸出。

如果表示式中還包含"_"符號,則遍歷待選數字,替換掉表示式中的第乙個"_"符號,接著去掉待選數字繼續遞迴即可。

阿里基礎面試題

前面的話 分享幾題阿里的基礎面試題,題目來自小柒看的一場直播課上的。解析 1 下面的 輸出結果 var test function a function a,b 1 2 console.log test 4 解析 最後console.log test 4 4傳給上面的引數b,最後結果 1 4 5。2...

阿里面試題

1 請寫出以下 執行結果。var x 1,y 0,z 0 function add x y add x function add x z add x x 1 y 4 z 42 請寫出以下 執行結果。var num 1 var myobject console.log this.num sub fun...

程式設計面試題

1.自定義乙個分頁函式,傳參當前頁數 總頁數,輸出以下 1.34567.10 123456.10 1 showpage是掐頭去尾的顯示數量 2 這個函式的重點就在於起始值和結束值的運算 3function page currentpage,totalpages,showpage 5 412 13 p...