力扣 824. 山羊拉丁文 難度:簡單
阿新 • • 發佈:2022-04-21
給你一個由若干單片語成的句子 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; } }