翻转单词顺序列

Posted by DH on July 19, 2017

题目

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看, 但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一 的翻转这些单词顺序可不在行,你能帮助他么?

分析

我们可以直接根据空格截断字符串,并存储到一个数组中,然后进行拼接

代码

public class Solution {
    public String ReverseSentence(String str) {
        // 字符串是空 
		if(str == null || str.length() == 0){
            return "";
        }
        
        // 如果测试用例是空格,输出原始字符串
        if(str.trim().equals("")){
            return str;
        }
        
        // 按照空格将字符串截断成单词存入数组
        String [] strArray  = str.split(" ");
        
        // 创建一个stringbuffer用与存储
        StringBuffer buffer = new StringBuffer();
        
        // 从数组后面往前面读,一边读取,一边拼接
        for(int i = strArray.length-1; i >= 0; i--){
            buffer.append(strArray[i]);
            // 加上空格
            if(i>0){
                buffer.append(" ");
            }
        }
        
        return buffer.toString();
        
    }
        
}