力扣:824、山羊拉丁文
給定一個由空格分割單詞的句子 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。
思路:
其實沒有什麼思路。。。用兩個變數當指標,其中一個right從最左邊開始掃描當遇到空格就停下來,另一個left留在最左邊(一個單詞的最左邊),當right遇到空格停下來,left和right之間剛好是一個單詞,這是對單詞進行判斷和修改之類的,完了時候,left移到rigth(也就是空格)的後一個,指向下一個單詞的第一個字母,right移到left的位置繼續往後掃描遇到空格停下來這樣迴圈。
class Solution {
public String toGoatLatin(String S) {
S += " ";
char[] c = S.toCharArray();
String s1 = S;
String s = "";
int left = 0;
int right = 0;
int index = 1;
while (right < c.length && left < c.length) {
if (c[right] == ' '|| right == c.length-1) {
if (c[left] == 'A' || c[left] == 'E' || c[left] == 'I' || c[left] == 'O' || c[left] == 'U' || c[left] == 'a' || c[left] == 'e' || c[left] == 'i' || c[left] == 'o' || c[left] == 'u') {
s += s1.substring(left, right) + "ma";
left = right + 1;
} else {
s += s1.substring(left + 1, right) + S.charAt(left) + "ma";
left = right+1;
}
for (int i = 0; i < index; i++) {
s += "a";
}
index++;
if(right!=c.length-1){
s += " ";
}
right = left;
} else right++;
}
return s;
}
}
第一次寫部落格,啊啊~~。雖然程式碼寫的很差但是!!我很厲害。歡迎指正交流吖~
相關文章
- 力扣 824. 山羊拉丁文 Java力扣Java
- 力扣---2020.7.30力扣
- 力扣---2020.9.3力扣
- 力扣---2020.9.4力扣
- 力扣---2020.9.28力扣
- 力扣---2020.9.27力扣
- 力扣---2020.9.29力扣
- 力扣(LeetCode)543力扣LeetCode
- 力扣(LeetCode)934力扣LeetCode
- 力扣(LeetCode)103力扣LeetCode
- 力扣(LeetCode)513力扣LeetCode
- 力扣(LeetCode)389力扣LeetCode
- 力扣(LeetCode)796力扣LeetCode
- 力扣(LeetCode)863力扣LeetCode
- 力扣(LeetCode)310力扣LeetCode
- 力扣(LeetCode)130力扣LeetCode
- 力扣(LeetCode)965力扣LeetCode
- 力扣2589 5.16力扣
- 力扣1542 2024.5.22力扣
- 力扣2713 2024.6.19力扣
- 力扣題解力扣
- 力扣社群開通力扣
- 力扣-9.23-680力扣
- 力扣oj-字串相乘力扣字串
- 力扣最長公共字首力扣
- 力扣之移動零力扣
- 力扣之按身高排序力扣排序
- 教你如何玩轉力扣力扣
- 力扣之兩數之和力扣
- 力扣27. 移除元素力扣
- 力扣-48 旋轉影像力扣
- 力扣---70. 爬樓梯力扣
- 力扣 22. 括號生成力扣
- 力扣-231. 2 的冪力扣
- 力扣-283. 移動零力扣
- 力扣-54. 螺旋矩陣力扣矩陣
- 力扣#43 字串相乘(C++)力扣字串C++
- 力扣——朋友圈思路分析力扣