A sentence S
is given, composed of words separated by spaces. Each word consists of lowercase and uppercase letters only.html
We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig Latin.)app
The rules of Goat Latin are as follows:post
"ma"
to the end of the word."ma"
."goat"
becomes "oatgma"
.'a'
to the end of each word per its word index in the sentence, starting with 1."a"
added to the end, the second word gets "aa"
added to the end and so on.Return the final sentence representing the conversion from S
to Goat Latin. ui
Example 1:url
Input: "I speak Goat Latin" Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
Example 2:spa
Input: "The quick brown fox jumped over the lazy dog" Output: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
Notes:code
S
contains only uppercase, lowercase and spaces. Exactly one space between each word.1 <= S.length <= 150
.
這道題讓咱們將一句話轉爲山羊拉丁文,有幾個規則,若是單詞是元音開頭的,那麼直接在但此後加ma,(爲啥不是咩mie,西方的羊就是叫ma麼,不知爲什麼想起了老友記中Janice的笑聲-.-|||,但其實Janice在劇中的聲音是有意爲之的,看過演員本人的訪談節目,至關正常,不得不說演員啊,聲優啊,都是怪物,扯遠了~),若是是非元音開頭的單詞,那麼把首字母移到末尾,而且加ma。還有就是根據當前是第幾個單詞,後面加幾個a,估計是爲了模仿羊叫聲,拉長音,感受更像綿羊音同樣。此題難度不是很大,就照題目要求來作,不須要啥特別的技巧。首先爲了快速檢測開頭字母是否爲元音,咱們將全部元音加入一個HashSet,注意大小寫的元音都要加進去。而後要一個單詞一個單詞的處理,這裏咱們使用C++的字符串流類來快速的提取單詞,對於每一個提取出的單詞,咱們先加上一個空格,而後判斷開頭字母是否爲元音,是的話直接加上,否則就去子串去掉首字母,而後將首字母加到末尾。後面再加上ma,還有相對應數目個a。這裏咱們定義一個變量cnt,初始化爲1,每處理一個單詞,cnt自增1,這樣咱們就知道須要加的a的個數了,最後別忘了把結果res的首空格去掉,參見代碼以下:htm
class Solution { public: string toGoatLatin(string S) { unordered_set<char> vowel{'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}; istringstream ss(S); string res, t; int cnt = 1; while (ss >> t) { res += ' ' + (vowel.count(t[0]) ? t : t.substr(1) + t[0]) + "ma" + string(cnt, 'a'); ++cnt; } return res.substr(1); } };
參考資料:blog
https://leetcode.com/problems/goat-latin/leetcode
https://leetcode.com/problems/goat-latin/discuss/126973/Short-C%2B%2B-solution-using-io-stringstream
https://leetcode.com/problems/goat-latin/discuss/127024/C%2B%2BJavaPython-Straight-Forward-Solution