翻转句子中单词的序列

原创
2016/06/29 14:03
阅读数 177

题目

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

解题

下面给出一种比较优的解题算法。

public class Solution {
    public String ReverseSentence(String str) {
        if( str == null || str.length()<=0)
            return str;
        char[] chs = str.toCharArray();
        int len = chs.length;
        int i = 0;
        String tmp = "";
        String result = "";
        while(i < len){
            if(chs[i] == ' '){ // 找到空格
                result = " " + tmp + result;// 加在result的前面 才能逆序
                tmp = "";
            }else{
                tmp = tmp + chs[i]; // 加在后面,保证原始顺序
            }
            i++;
        }
        if(tmp.length()!=0){ // 最后一个单词
            result = tmp + result;
        }
        return result;
    }
}

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部