剑指Offer—44—翻转单词顺序列

来源:互联网 发布:神代利世cos淘宝 编辑:程序博客网 时间:2024/06/05 11:06

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

package A44翻转单词顺序列;public class Solution {    //“student. a am I”。    //“I am a student.”。    // 第三个单词放到第一个    // 坑爹的测试用例  ""  " "    public String ReverseSentence(String str) {        if (str.length() == 0) {            return str;        }        if (str.trim().equals("")) {            return str;        }        String[] strings = str.split(" ");        StringBuilder stringBuilder = new StringBuilder();        for (int i = strings.length-1; i >= 0 ; i--) {            if (i != 0){                stringBuilder.append(strings[i]);                stringBuilder.append(" ");            }else {                stringBuilder.append(strings[i]);            }        }        return stringBuilder.toString();    }    public static void main(String[] args) {        Solution solution = new Solution();        System.out.println(solution.ReverseSentence(" "));        //String s = " ";        //System.out.println(s.length());        //System.out.println(s.equals(" "));    }}
package A44翻转单词顺序列;public class Solution1 {    public String reverseStr(String str) {        return new StringBuilder(str).reverse().toString();    }    public String ReverseSentence(String str) {        if (str.length() == 0) {            return str;        }        if (str.trim().equals("")) {            return str;        }        String string = reverseStr(str);        String[] strings = string.split(" ");        StringBuilder stringBuilder = new StringBuilder();        for (int i = 0; i < strings.length - 1; i++) {            stringBuilder.append(reverseStr(strings[i]) + " ");        }        stringBuilder.append(reverseStr(strings[strings.length - 1]));        return stringBuilder.toString();    }}