記一次 Booking 線上面試中遇到的小問題

從事 Android 開發工做要滿 5 年了,雖然明白本身技術很通常,可是也老是指望可以有機會進入更好的平臺發展。
這不,由於機緣巧合有了一次 Booking 的面試邀請(是在 hackerrank 上),而後開始臨時抱佛腳 (leetcode
走起),最終選擇了一個週末去完成線上測試,結果我徹底沒預料到。本覺得會被某道題的邏輯繞昏,結果哪知道被標準輸入這個東西卡得死死的,如今就記錄一下此次很是糟糕的體驗,給本身提個醒。面試

一共四道題,其中一道是 Android 相關的。我一看,嘿嘿,簡單得很,就是一個遞歸查找,10分鐘搞定。
而後其餘三道是 Java 題,我看了下一道題目(題目具體是什麼我就不能說了),略微思考後,有了思路,接着就開始在本地 IDE 裏寫實現,而後就是噩夢的開始了。。。函數

// 對的,簡單的一個 Main 函數
// 輸入相似格式以下
// 1 1 1 1
// 2 3 4 5
// 1 1 3 4

public class Booking {
    public static void main(String[] args) throws IOException {
        
    }
}

輸入參數具體意義是題目給定的,你要作的就只是取到它們而後就能夠開始實現你本身的解題步驟了。由於通常在 leetcode 上作題,你要作的就只是實現函數邏輯,輸入已經給你處理好了,因此看到這個題一下就沒反應過來,「這不是 Java 的標準輸入嗎?我不知道怎麼處理啊。。。趕忙谷歌一下吧。我艹,仍是不對啊,我取不到輸入值啊,是要 do{}while()來着吧?仍是不行啊,敲完回車後怎麼還在等待輸入啊。這個輸入是粘貼進去的仍是行輸入的啊。」。測試

過了十來分鐘,仍是沒有轉機,人一下就慌了。巨大的焦慮籠罩在頭頂,哪還有心思解題啊,我非得把這個搞出來,而後。。。就沒有而後了。code

結果今天早上收到郵件,唉,確定涼了唄。在今天上班寫了一早上的業務後,決定仍是要把這個問題有始有終掉,因而從新整理了思路,記錄一下正確的寫法。遞歸

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String[] aItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");

        List<Integer> a = new ArrayList<>();

        for (int i = 0; i < 3; i++) {
            int aItem = Integer.parseInt(aItems[i]);
            a.add(aItem);
        }

        String[] bItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");

        List<Integer> b = new ArrayList<>();

        for (int i = 0; i < bItems.length; i++) {
            int bItem = Integer.parseInt(bItems[i]);
            b.add(bItem);
        }

        List<Integer> result = doSomething(a, b);

        for (int i = 0; i < result.size(); i++) {
            bufferedWriter.write(String.valueOf(result.get(i)));

            if (i != result.size() - 1) {
                bufferedWriter.write(" ");
            }
        }

        bufferedWriter.newLine();

        bufferedReader.close();
        bufferedWriter.close();

函數doSomething就是你須要完成的函數體了。leetcode

其實寫這篇筆記的時候我也才發現,或者說纔想起來,當時我若是去HackerRank隨便找一道題,而後看看它的寫法不就輕易的跨過這個問題了嗎。
唉,當時真的就是太慌了,一下就什麼都忘記了!真是愚蠢的我啊!開發

相關文章
相關標籤/搜索