1. 程式人生 > >leetcode (Goat Latin)

leetcode (Goat Latin)

Title:Goat Latin  824

Difficulty:Easy

原題leetcode地址: https://leetcode.com/problems/goat-latin/

 

1.   見程式碼註釋

時間複雜度:O(n),一次一層for迴圈。

空間複雜度:O(n),通過split()方法切割了字串,最長為字串長度。

    /**
     * 呼叫split分割,依次判斷,最後悔多一個空格需要刪除
     * @param S
     * @return
     */
    public static String toGoatLatin(String S) {

        StringBuilder sb = new StringBuilder();
        String cs[] = S.split(" ");

        for (int i = 0; i < cs.length; i++) {
            char first = cs[i].charAt(0);
            if (isVowel(first)) {
                sb.append(cs[i]);
            }
            else {
                sb.append(cs[i].substring(1));
                sb.append(cs[i].substring(0, 1));
            }
            sb.append("ma");
            for (int j = 0; j <= i; j++) {
                sb.append("a");
            }
            sb.append(" ");
        }

        sb.deleteCharAt(sb.length() - 1);
        return sb.toString();

    }

    /**
     * 是否為母音
     * @param c
     * @return
     */
    private static boolean isVowel(char c) {

        switch (c) {
            case 'a':
            case 'A':
            case 'e':
            case 'E':
            case 'i':
            case 'I':
            case 'o':
            case 'O':
            case 'u':
            case 'U':
                return true;
        }

        return false;

    }