All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0801_0900.s0824_goat_latin.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0801_0900.s0824_goat_latin;

// #Easy #String #2022_03_23_Time_2_ms_(94.82%)_Space_42.6_MB_(46.17%)

/**
 * 824 - Goat Latin\.
 *
 * Easy
 *
 * You are given a string `sentence` that consist of words separated by spaces. Each word consists of lowercase and uppercase letters only.
 *
 * We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig Latin.) The rules of Goat Latin are as follows:
 *
 * *   If a word begins with a vowel (`'a'`, `'e'`, `'i'`, `'o'`, or `'u'`), append `"ma"` to the end of the word.
 *     *   For example, the word `"apple"` becomes `"applema"`.
 * *   If a word begins with a consonant (i.e., not a vowel), remove the first letter and append it to the end, then add `"ma"`.
 *     *   For example, the word `"goat"` becomes `"oatgma"`.
 * *   Add one letter `'a'` to the end of each word per its word index in the sentence, starting with `1`.
 *     *   For example, the first word gets `"a"` added to the end, the second word gets `"aa"` added to the end, and so on.
 *
 * Return _the final sentence representing the conversion from sentence to Goat Latin_.
 *
 * **Example 1:**
 *
 * **Input:** sentence = "I speak Goat Latin"
 *
 * **Output:** "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
 *
 * **Example 2:**
 *
 * **Input:** sentence = "The quick brown fox jumped over the lazy dog"
 *
 * **Output:** "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
 *
 * **Constraints:**
 *
 * *   `1 <= sentence.length <= 150`
 * *   `sentence` consists of English letters and spaces.
 * *   `sentence` has no leading or trailing spaces.
 * *   All the words in `sentence` are separated by a single space.
**/
public class Solution {
    public String toGoatLatin(String sentence) {
        String[] splits = sentence.split(" ");
        StringBuilder sb = new StringBuilder();
        StringBuilder a = new StringBuilder();
        for (String word : splits) {
            if (isVowel(word.charAt(0))) {
                sb.append(word).append("ma");
            } else {
                char firstChar = word.charAt(0);
                sb.append(word.substring(1)).append(firstChar).append("ma");
            }
            a.append("a");
            sb.append(a);
            sb.append(" ");
        }
        return sb.toString().trim();
    }

    private boolean isVowel(char c) {
        return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E'
                || c == 'I' || c == 'O' || c == 'U';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy