Java面試,機考題整理
面試常見的基本問題-02

其實就是leetcode easy題,把常見的盡量做一做吧

反轉字串

/**
* 輸入 'abcde' 輸出 'edcba'
*/
private static String reverseStr(String str) {
String result = "";
for (int i = str.length(); i >= 1; i--) {
result = result + str.charAt(i - 1);
}
return result;
}

是否迴文

private boolean isPal(String str) {
    String newStr = new StringBuilder(str).reverse().toString();
    return str.equals(newStr);
}

FizzBuzz

/**
 * FizzBuzz
 * 給一個整數 n 請列印出 1~n 的每一個整數, 但是
 * 當整數可以被 3 整除的時候印出 Fizz 來代替原本要印出的數,
 * 當整數可以被 5 整除的時候印出 Buzz 來代替原本要印出的數,
 * 當整數可以被 3 跟 5 整除的時候印出 FizzBuzz 來代替原本原本要印出的數。
 */
private static void printFizzBuzz(int n) {
    for (int i = 1; i <= n; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            System.out.println("FizzBuzz");
        }
        if (i % 3 == 0) {
            System.out.println("Fizz");
        }
        if (i % 5 == 0) {
            System.out.println("Buzz");
        }
        System.out.println(i);
    }
}

首字大寫

/**
 * 把一串小寫英文,每個英文單字第一個字母大寫
 */
private static String toUpperCase(String str) {
    String res = "";
    // 第一個總要變大
    res += Character.toString(str.charAt(0)).toUpperCase();
    // 遍歷
    for (int i = 1; i < str.length(); i++) {
        // 遇到空格下個字就變大
        if (Character.toString(str.charAt(i - 1)).equals(" ")) {
            res += Character.toString(str.charAt(i)).toUpperCase();
        } else {
            // 沒事的維持小寫
            res += Character.toString(str.charAt(i));
        }
    }
    return res;
}

費氏數列

/**
 * 費波納數列
 */
private static int fibona(int n) {
    if (n <= 1) {
        return n;
    }
    return fibona(n - 1) + fibona(n - 2);
}

上次修改於 2022-02-17