码迷,mamicode.com
首页 > 其他好文 > 详细

824. Goat Latin - LeetCode

时间:2018-08-13 20:44:42      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:转换   substring   效率   convert   https   ||   char   要求   string   

Questioin

824.?Goat Latin

技术分享图片

Solution

题目大意:根据要求翻译句子

思路:转换成单词数组,遍历数组,根据要求转换单词

Java实现:

用Java8的流实现,效率太低

public String toGoatLatin(String S) {
    final String[] arr = S.split(" ");
    final int[] idx = {0};
    return Arrays.stream(S.split(" "))
        .map(s -> convert(s, ++idx[0]))
        .reduce("", (s1, s2) -> s1 + " " + s2).trim();
}

String convert(String ori, int count) {
    String pre = "";
    // begin with vowel aeiou
    char first = ori.charAt(0);
    if (first == 'A' || first == 'a'
        || first == 'E' || first == 'e'
        || first == 'I' || first == 'i'
        || first == 'O' || first == 'o'
        || first == 'U' || first == 'u'
       ) {
        pre = ori;
    } else {
        // begin with consonant not aeiou
        pre = ori.substring(1) + first;
    }

    // add a
    char[] a = new char[count];
    for (int i = 0; i < count; i++) {
        a[i] = 'a';
    }
    return pre + "ma" + String.valueOf(a);
}

技术分享图片

public String toGoatLatin(String S) {
    StringBuilder sb = new StringBuilder();
    int count = 1;
    for(String tmp : S.split(" ")) {
        sb.append(convert(tmp, count++)).append(" ");
    }
    return sb.toString().trim();
}

技术分享图片

824. Goat Latin - LeetCode

标签:转换   substring   效率   convert   https   ||   char   要求   string   

原文地址:https://www.cnblogs.com/okokabcd/p/9470373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!