1. 程式人生 > 其它 >力扣 824. 山羊拉丁文 難度:簡單

力扣 824. 山羊拉丁文 難度:簡單

給你一個由若干單片語成的句子 sentence ,單詞間由空格分隔。每個單詞僅由大寫和小寫英文字母組成。

請你將句子轉換為 “山羊拉丁文(Goat Latin)”(一種類似於 豬拉丁文 - Pig Latin 的虛構語言)。山羊拉丁文的規則如下:

如果單詞以母音開頭('a', 'e', 'i', 'o', 'u'),在單詞後新增"ma"。
例如,單詞 "apple" 變為 "applema" 。
如果單詞以子音字母開頭(即,非母音字母),移除第一個字元並將它放到末尾,之後再新增"ma"。
例如,單詞 "goat" 變為 "oatgma" 。
根據單詞在句子中的索引,在單詞最後新增與索引相同數量的字母'a',索引從 1 開始。
例如,在第一個單詞後新增 "a" ,在第二個單詞後新增 "aa" ,以此類推。
返回將 sentence 轉換為山羊拉丁文後的句子。

 

示例 1:

輸入:sentence = "I speak Goat Latin"
輸出:"Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
示例 2:

輸入:sentence = "The quick brown fox jumped over the lazy dog"
輸出:"heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/goat-latin


程式碼

class Solution {
    public String toGoatLatin(String sentence) {
        AtomicInteger n = new AtomicInteger(1);

        String[] word = sentence.split(" ");
        StringBuilder stringJoiner = new StringBuilder();
        Arrays.stream(word).forEach(e->{

            char f = e.charAt(0
); if (f == 'a' || f == 'e' || f == 'i' || f == 'o' || f == 'u' || f == 'A' || f == 'E' || f == 'I' || f == 'O' || f == 'U' ){ String result = e+"ma" + String.join("", Collections.nCopies(n.getAndIncrement(), "a")); stringJoiner.append(result+" "); }else{ String after; if (e.length()>1){ after = e.substring(1,e.length()); after += f; }else{ after = e; } String result = after+"ma" + String.join("", Collections.nCopies(n.getAndIncrement(), "a")); stringJoiner.append(result+" "); } }); String s = stringJoiner.substring(0,stringJoiner.length()-1); return s; } }