题目描述

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。

思路

1.首先将原字符串根据“ ”进行分割,将分割后的数组倒序相加,中间用“ ”分割。
2.最后将最终的字符串尾部多余的“ ”去掉。

Java代码实现

class Solution {
    public String reverseWords(String s) {
        String[] words = s.split(" ");
        String res = "";
        for (int i = words.length-1; i >= 0; i--) {
            if("".equals(words[i])){
                continue;
            }
            res = res + words[i] + " ";
        }
        return res.trim();
    }
}

Golang代码实现

func reverseWords(s string) string {
    words := strings.Split(s," ")
    res := ""
    for i:=len(words)-1; i>=0; i-- {
        if words[i] == ""{
            continue
        }
        res = res + words[i] + " "
    }
    res = strings.Trim(res," ")
    return res
}