Facebookインタビューをノックアウトした方法

画像 こんにちは、Habrahabrの読者の皆さん!



この記事では、目立たない学生である私が、Biggiesリストに載っている企業の1つであるFacebookで、特に問題なくインタビューをノックアウトした方法について説明します。



要点: githubで 学校レベルの パズルを解く 彼はテーマ別の銃口を突き刺し、Objective-Cの伝統のすべてを行いました。ポピーでコンパイルする必要があります。 この読み物が多くのロシアの学生の目を開き、あなたの夢の大企業に入るのがどれほど簡単かを願っています。



残念ながら、FBは私の優先事項ではありません。 インタビューに行き、質問を見て、質問された内容とスタジオでインタビューを依頼できることについて次の記事を書きます。



猫の下で興味を持ってください。



事前に警告します。テキストを部分に分割することはありません。 全体の背景と決定には2時間もかかりませんでした。 超自然的な何かのためにあなた自身を準備する必要はありません-私はこの問題がロシアの学校のプログラミングサークルで与えられていると思う。



それは火曜日でした。大学の後は何の関係もありませんでした。無料のピザを食べにキャンパスでFacebookの講義に参加しました。 ちなみに、私は3つのスライスを食べましたが、私の記憶の中で最もおいしいピザはElectronic Artsのプレゼンテーションでした。 ザッカーバーグの男たちは約150人の学生を収容しました。 FBへの応募プロセス、一連のインタビューについて話し、「配列内の重複の検索を実装する」などの簡単なタスクをいくつか決定しました。30〜40秒間の幼稚園レベルのタスクについて考えてください。



私は去ろうとしていました-ピザは終わりました、そして、私は非常に退屈していました。 さらに、私はすべての人を悩ませることができました-私は他の人よりも先に手を挙げ、常により良い解決策を提供しました。 講義の途中で、彼らは私に尋ねることをやめ、私に注意を払いました。 しかし、結論として、彼らは私たちに「宿題パズル」を与え、チーフリクルーターは私に、それが突然現れたらメールで彼に決定を落とすように言った。



私は非常に驚いた:数字(正方形の辺)を取り、らせん状にねじれた数字のシーケンスを生成する関数を書く必要があった。 9に等しい正方形の辺の例を以下に示します。



画像



最初はこの問題を忘れていましたが、答えのために提示されたポスターに書き直しました。 そして、彼らは他の人にTシャツを配りました。 彼がたくさん答えたという事実のために。



家に帰る途中でバスに飽きました(10分間耐えるのが難しい)ので、同じポスターに近似アルゴリズムを投げました。 私が家に着いたとき、私はさらに数時間私の心を鋭く保つためにいくつかのエネルギードリンクを飲み、Objective-Cでコードを書き始めました。 私は十分なレベルでプロを知らないからです。 私はとても残念だからです。



プログラムのインターフェイスをホイップアップし、わずかにテーマにした-突然100のソリューションが採用担当者に届きましたが、それらはすべて同じですか? ここでは、どういうわけか群衆から目立つ必要があります!



画像



まあ、それは問題ではありません。 マトリックスの基礎として2次元配列を使用しました。 私の場合、NSNumberのNSArrayのNSArrayです。 そしてすぐに、この配列を目的のウィンドウに出力するメソッドを作成しました。 ウィンドウはWebViewでした。HTMLで簡単にプレートを作成できます。



注意コード!
/** * ,      WebView * * @param result    */ - (void)printResult:(NSArray *)result { //  css   ,       NSString *css = @"<style>*{font-size:17px; font-family:\"Helvetica\";} td{text-align:center;}</style>"; //      css    NSMutableString *resultString = [NSMutableString stringWithFormat:@"%@<table>",css]; //     for (NSArray *inner in result) { //    [resultString appendString:@"<tr>"]; //     for (NSNumber *number in inner) { //     [resultString appendString:@"<td>"]; //   [resultString appendString:[number stringValue]]; //     [resultString appendString:@"</td>"]; } //     [resultString appendString:@"</tr>"]; } //   [resultString appendString:@"</table>"]; //   HTML  WebView [self.resultWebView.mainFrame loadHTMLString:resultString baseURL:nil]; }
      
      





配列をデータで埋めるだけです。 メソッドコードの目を通して、以下でいくつかのポイントを強調します。



注意コード!
 /** *        * * @param side   () * * @return   , , [[1,2,3],[8,9,4],[7,6,5]] */ - (NSArray *)getNumbersArrayForSide:(int)side { //   NSMutableArray *result = [NSMutableArray array]; //      for (int i = 0; i < side; i++) { NSMutableArray *temp = [NSMutableArray array]; for (int j = 0; j < side; j++) [temp addObject:[NSNull null]]; [result addObject:temp]; } //   ,    int currentSide = side; //    int offset = 0; int currentNumber = 1; // ,      while (offset < (side/2.0)) { //    for (int i = 0; i < currentSide; i++) { result[offset][offset+i] = @(currentNumber); currentNumber++; } //    for (int i = 0; i < currentSide-2; i++) { result[1+offset+i][side-1-offset] = @(currentNumber); currentNumber++; } //    if (side/2 - offset > 0) { for (int i = 0; i < currentSide; i++) { result[side-1-offset][side-1-i-offset] = @(currentNumber); currentNumber++; } } //    for (int i = 0; i < currentSide-2; i++) { result[side-2-offset-i][offset] = @(currentNumber); currentNumber++; } //  ,    offset++; currentSide-=2; } return result; }
      
      







そして、ここに正方形に8に等しい結果があります:



画像



コーディングとテストが正常に完了したら、履歴書とソリューションを記載したメールをメインの採用担当者のメールに送信しました。 今夜、私は答えを見つけました:オフィスでのインタビューに感謝し、招待されました。



正直、びっくりしました。 確かに、人々はより良​​い解決策を送ってきました。なぜ私なのですか? すべてがシンプルであることが判明しました。 電話での会話から、講義室にいる150人のうち、3人しか解決策を送っていないことに気付きました(私もその中にいます)。 1つのソリューションはコンパイルされず、もう1つのソリューションはプロのシンプルなコンソールソリューションでした。 選択が明らかだったようです。



会社に履歴書を送った後、電話がかからないという苦情を学生がよく耳にします。 私は神についての冗談と宝くじを思い出します。



最後まで読んでくれてありがとう! そこで、学校レベルの問題を解決する助けを借りて、なんとかFacebookでインタビューを受けました。 もっと簡単な解決策があると確信しており、本当に知りたいです! コメントでソリューションを共有してください。



伝統により、 私のエラーとタイプミスをすべてhabracenterに知らせるようお願いします。



All Articles