Skip to content

Commit bd9598f

Browse files
authored
Update Goat Latin.java
1 parent 5c50a32 commit bd9598f

File tree

1 file changed

+14
-24
lines changed

1 file changed

+14
-24
lines changed

Easy/Goat Latin.java

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
11
class Solution {
2-
public String toGoatLatin(String S) {
3-
StringBuilder sb = new StringBuilder();
4-
StringBuilder endAppend = new StringBuilder("a");
5-
final String CONSTANT_APPEND = "ma";
6-
int start = 0;
7-
int end = 0;
8-
int n = S.length();
9-
while (end < n) {
10-
while (end < n && S.charAt(end) != ' ') {
11-
end++;
12-
}
13-
char c = Character.toLowerCase(S.charAt(start));
14-
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
15-
sb.append(S.substring(start, end)).append(CONSTANT_APPEND).append(endAppend.toString());
16-
}
17-
else {
18-
sb.append(S.substring(start + 1, end)).append(S.charAt(start)).append(CONSTANT_APPEND).append(endAppend.toString());
19-
}
20-
endAppend.append('a');
21-
end++;
22-
start = end;
23-
if (end < n) {
24-
sb.append(' ');
2+
public String toGoatLatin(String sentence) {
3+
String[] words = sentence.split("\\s+");
4+
StringBuilder result = new StringBuilder();
5+
StringBuilder aWord = new StringBuilder();
6+
Set<Character> vowels = Set.of('a', 'e', 'i', 'o', 'u');
7+
for (String word : words) {
8+
aWord.append('a');
9+
char firstChar = word.charAt(0);
10+
if (vowels.contains(Character.toLowerCase(firstChar))) {
11+
result.append(word).append("ma");
12+
} else {
13+
result.append(word.substring(1)).append(firstChar).append("ma");
2514
}
15+
result.append(aWord.toString()).append(" ");
2616
}
27-
return sb.toString();
17+
return result.toString().trim();
2818
}
2919
}

0 commit comments

Comments
 (0)