2020阿里的機試題

2021-10-04 17:06:32 字數 1635 閱讀 7006

前些天看到阿里的招聘就順便投了份簡歷,也沒有抱有太大的希望能邀請面試,大概過了十多天突然手機響了,面試官要直接跟我聊聊,剛好那天沒空,推到了第二天。然後在第二天面試官先讓我做了乙份機試題,我只做出了兩題,一共是三題,這邊記錄下題目(就在當天晚上我前思後想,還是在睡覺前想出了第二題的解決方案):

1.編寫函式`convert(money)` ,傳入金額,將金額轉換為千分位表示法。例如:12345.6789 => 12,345.6789

2.樹結構轉化[,

,,,,

]=>

},],},,

] 3:實現乙個方法,用於比較兩個版本號(version1、version2)

/*** 如果version1 > version2,返回1;如果version1 < version2,返回-1,其他情況返回0

* 版本號規則`x.y.z`,xyz均為大於等於0的整數,至少有x位

* 示例:

* compareversion('0.1', '1.1.1'); // 返回-1

* compareversion('13.37', '1.2 '); // 返回1

* compareversion('1.1', '1.1.0'); // 返回0

*/

function convert(money))+(?!\d))/g, "$1,") + "." + arr[1];

}

這裡面使用了replace對字串進行匹配並且替換,一開始我想的是字串的查詢和插入(indexof, substring等方法,**寫了一半突然想到了split + splice這個方案,但是還是比較複雜,最後直接上表示式,所以以後處理字串一定要最先想到解決問題的方案優先從表示式開始)

這邊說明下?=(前瞻), ?! (負前瞻),?<=(後顧),?前瞻表示匹配當前的子表示式,並查詢前面的表示式。例如:exp1(?=exp2),只有exp2匹配成功,才進行exp1的查詢。

負前瞻表示不匹配當前的子表示式,並查詢前面的表示式。例如:exp1(?!exp2),只有exp2匹配失敗,才進行exp1的查詢。

後顧表示匹配當前的子表示式,並查詢後面的表示式。例如:(?<=exp2)exp1,只有exp2匹配成功,才進行exp1的查詢。

負後顧表示不匹配當前的子表示式,並查詢後面的表示式。例如:(?第二題:

function arraytotree(arr) 

obj.children.push(array.splice(i, 1)[0]);

i--;}}

if (obj.children) }}

for (let i = 0; i < parents.length; i++)

return parents;

}

第三題:

function compareversion(version1, version2) )

var y = ["0", "0", "0"].map(function (item, index) )

if (x[0] > y[0]) else if (x[0] < y[0]) else else if (x[1] < y[1]) else else if (x[2] < y[2]) else

}}}

阿里機試題目 虛函式

參考 class my int main int main int main class child public father int main class dog public animal dog virtual void print age void cat virtual void pri...

2020阿里實習生招聘筆試題

小強有n個養雞場,第i個養雞場初始有a i 只小雞,小強的每個養雞場每天早上都會增加k只小雞,到了下午小強會把雞最多的雞場賣掉一半雞,那麼小強想知道m天後他所有養雞場一共有幾隻雞。第一行輸入三個正整數n,m,k 第二行輸入n個正整數a i 表示養雞場雞數量。1 n 100000,1 m 100000...

2020華為春招機試題目回憶

剛剛做完題目,趁著還記得題目,記錄一下。第一題,給兩個ip和掩碼,計算這兩個ip在不在乙個子網。第二題,給0 1矩陣,計算由1組成的最大的正方形的面積。第三題,打怪獸,每個怪獸有個數值標記,從起點開始,必須按數值大小順序打,矩陣上0不能走,1代表沒有怪獸,2的就是怪獸,打過了就變成1。問能不能打到最...