花樣招聘面試題

2021-09-13 11:15:11 字數 2526 閱讀 7857

由於我們得到摩斯密碼沒有空格隔開,所以解密後有可能不止一種。這個時候,身為攻城蝨當然想到是用程式解決了。

既然,中說到是4個字的單詞,等於這段密碼可以分為4段。

[part1][part2][part3][part4]
如果4段密碼分別都能匹配上,那麼連起來整個密碼也能匹配上(廢話)。最先想到是用4層迴圈窮舉法

for()}}

}

可是如何把這段密碼分成四段呢?很簡單,如果電碼符號與密碼前幾個字元能完全匹配,這裡就分一段,然後繼續匹配下一段。

for()}}

}

第四段,也就是最後一段匹配不能再用[indexof],而是用[===]。

核心匹配**

for(i = 0; i < morsecodenum; i ++)}}

}}}}

}

注:mission1表示處於匹配第一段密碼,以此類推。

完整的**

var morsecodemap = [

'.-', '-...', '-.-.', '-..',

'.', '..-.', '--.', '....',

'..', '.---', '-.-', '.-..',

'--', '-.', '---', '.--.',

'--.-', '.-.', '...', '-',

'..-', '...-', '.--', '-..-',

'-.--', '--..'

], secretcode = '.--..-......',

morsecodenum = morsecodemap.length,

letters = 'abcdefghijklmnopqrstuvwxyz';

var result = ,

firstmatchpart,

secondmatchpart,

thirdmatchpart,

fourthmatchpart,

mission1,

mission2,

mission3,

mission4;

function decodemorse()}}

}}}}

}}decodemorse();

console.log(result);

得到結果如下,根據中的提示,該單詞與面試有關,那麼應該是pass無疑。

上面的**我們用了4層for巢狀迴圈,確實有點多,但是只有if條件成立,才會進入深層的迴圈。因為要求所有解,是避免不了的.

假如,我們得到的密碼可能不是4段,不確定是幾段,這個時候就不能用巢狀for迴圈了,可以用遞迴。

核心**邏輯

function decodemorse(mission[j])else}}

}

使用遞迴的完整**

var morsecodemap = [

'.-', '-...', '-.-.', '-..',

'.', '..-.', '--.', '....',

'..', '.---', '-.-', '.-..',

'--', '-.', '---', '.--.',

'--.-', '.-.', '...', '-',

'..-', '...-', '.--', '-..-',

'-.--', '--..'

], secretcode = '.--..-......',

morsecodenum = morsecodemap.length,

letters = 'abcdefghijklmnopqrstuvwxyz',

result = ,

function decodemorse(morsecode, decoderesult, stack)else}}

}decodemorse(secretcode, result);

console.log(result);

我們還可以傳乙個數字引數給函式decodemorse,表示密碼由幾段組成,不傳則沒有限制。那麼decodemorse函式可以這樣寫

function decodemorse(morsecode, decoderesult, limit, stack)else

}else

}else}}

}}decodemorse(secretcode, result, 4);

微軟招聘面試題

只有5分鐘,超過5分鐘就放棄,因為你絕對不會被微軟招聘.這是微軟招聘時的智力測試 超過5分鐘,淘汰 test 1 燒一根不均勻的繩需用乙個小時,如何用它來判斷半個小時?test 2 請僅用一筆畫四根直線,將上圖9各點全部連線。test 3 對一批編號為1 100全部開關朝上 開 的燈進行以下操作 凡...

2023年秋季招聘IT面試題總結

1 大唐電信 嵌入式開發工程師 一面面試流程 自我介紹 專案介紹 做專案過程中遇到的問題 兩個小技術問題 面試者有什麼問題 1 和 的區別 答 1 作為二元操作符 和 都可以用作邏輯與的運算子,表示邏輯與 and 當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為...

微盟2018校園招聘面試題

1.integer等號判斷題目 題目是這樣的 integer t1 100 integer t2 100 integer t3 200 integer t4 300 判斷 t1 t2 返回的值 t3 t4 返回的值 我們來看一下integer的valueof原始碼 其中 預設integercache...