题目链接:山羊拉丁文
题解标签:模拟、遍历
思路:每日水题,纯模拟
代码:
class Solution {
public String toGoatLatin(String sentence) {
Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
StringBuilder suffix = new StringBuilder();
StringBuilder ans = new StringBuilder();
String first = "";
for (int i = 0; i < sentence.length(); i++) {
char c = sentence.charAt(i);
boolean isFirst = (i == 0 || sentence.charAt(i - 1) == ' ');
if (isFirst && !vowels.contains(c)) first = c + "";
else if (c != ' ') ans.append(c);
if (c == ' ') {
suffix.append('a');
ans.append(first).append("ma").append(suffix).append(c);
first = "";
}
}
suffix.append('a');
ans.append(first).append("ma").append(suffix);
return ans.toString();
}
}
运行结果:
执行耗时:2 ms,击败了80.74% 的Java用户
内存消耗:39.5 MB,击败了74.62% 的Java用户