本文主要記錄一下leetcode之山羊拉丁文網絡
給定一個由空格分割單詞的句子 S。每一個單詞只包含大寫或小寫字母。 咱們要將句子轉換爲 「Goat Latin」(一種相似於 豬拉丁文 - Pig Latin 的虛構語言)。 山羊拉丁文的規則以下: 若是單詞以元音開頭(a, e, i, o, u),在單詞後添加"ma"。 例如,單詞"apple"變爲"applema"。 若是單詞以輔音字母開頭(即非元音字母),移除第一個字符並將它放到末尾,以後再添加"ma"。 例如,單詞"goat"變爲"oatgma"。 根據單詞在句子中的索引,在單詞最後添加與索引相同數量的字母'a',索引從1開始。 例如,在第一個單詞後添加"a",在第二個單詞後添加"aa",以此類推。 返回將 S 轉換爲山羊拉丁文後的句子。 示例 1: 輸入: "I speak Goat Latin" 輸出: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa" 示例 2: 輸入: "The quick brown fox jumped over the lazy dog" 輸出: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa" 說明: S 中僅包含大小寫字母和空格。單詞間有且僅有一個空格。 1 <= S.length <= 150。 來源:力扣(LeetCode) 連接:https://leetcode-cn.com/problems/goat-latin 著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。
class Solution { Set<Character> set = new HashSet<>(){{ add('a'); add('e'); add('i'); add('o'); add('u'); add('A'); add('E'); add('I'); add('O'); add('U'); }}; public String toGoatLatin(String S) { String[] words = S.split(" "); StringBuilder builder = new StringBuilder(); for(int i=0; i<words.length; i++) { if (set.contains(words[i].charAt(0))){ builder.append(words[i] + "ma"); } else { builder.append(words[i].substring(1) + words[i].charAt(0) + "ma"); } for (int j = 0; j < i + 1; j++) { builder.append('a'); } builder.append(' '); } return builder.toString().trim(); } }
這裏先將字符串按空格分割爲單詞,而後遍歷每一個單詞,判斷首字母是否爲元音,是的話在後面添加ma,不是的話將首字母移到後面再拼接ma,最後再根據單詞在句子中的index拼接指定個數的a。app