版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsx1612727380/article/details/85222188
Title:Goat Latin 824
Difficulty:Easy
原题leetcode地址: https://leetcode.com/problems/goat-latin/
1. 见代码注释
时间复杂度:O(n),一次一层for循环。
空间复杂度:O(n),通过split()方法切割了字符串,最长为字符串长度。
/**
* 调用split分割,依次判断,最后悔多一个空格需要删除
* @param S
* @return
*/
public static String toGoatLatin(String S) {
StringBuilder sb = new StringBuilder();
String cs[] = S.split(" ");
for (int i = 0; i < cs.length; i++) {
char first = cs[i].charAt(0);
if (isVowel(first)) {
sb.append(cs[i]);
}
else {
sb.append(cs[i].substring(1));
sb.append(cs[i].substring(0, 1));
}
sb.append("ma");
for (int j = 0; j <= i; j++) {
sb.append("a");
}
sb.append(" ");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
/**
* 是否为元音
* @param c
* @return
*/
private static boolean isVowel(char c) {
switch (c) {
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
return true;
}
return false;
}