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