首页 > 其他分享 >leetcode-824-easy

leetcode-824-easy

时间:2023-02-15 21:33:06浏览次数:27  
标签:Latin word String sentence Goat easy 824 leetcode append

Goat Latin

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.
<ul>
	<li>For example, the word <code>"apple"</code> becomes <code>"applema"</code>.</li>
</ul>
</li>
<li>If a word begins with a consonant (i.e., not a vowel), remove the first letter and append it to the end, then add <code>"ma"</code>.
<ul>
	<li>For example, the word <code>"goat"</code> becomes <code>"oatgma"</code>.</li>
</ul>
</li>
<li>Add one letter <code>'a'</code> to the end of each word per its word index in the sentence, starting with <code>1</code>.
<ul>
	<li>For example, the first word gets <code>"a"</code> added to the end, the second word gets <code>"aa"</code> added to the end, and so on.</li>
</ul>
</li>
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 String toGoatLatin(String sentence) {
        if (sentence.trim().isEmpty()) {
            return "";
        }

        String[] words = sentence.split("\\s+");
        StringBuilder sb = new StringBuilder();
        String suffix = "a";
        Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));

        for (int i = 0; i < words.length; i++) {
            String word = words[i];
            char firstChar = word.charAt(0);
            boolean isVowel = vowels.contains(firstChar);

            if (isVowel) {
                sb.append(word).append("ma").append(suffix);
            } else {
                sb.append(word.substring(1)).append(firstChar).append("ma").append(suffix);
            }

            suffix += "a";
            sb.append(" ");
        }

        return sb.toString().trim();
    }

标签:Latin,word,String,sentence,Goat,easy,824,leetcode,append
From: https://www.cnblogs.com/iyiluo/p/17124778.html

相关文章