本文共 1444 字,大约阅读时间需要 4 分钟。
Reverse Words in a String
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.
public class Solution { public String reverseWords(String s) { String s1 = s.trim(); if (s1.length() == 0) return s1; String[] word = s.split("\\s+"); int len = word.length; StringBuilder sb = new StringBuilder(); if (word[0].equals("") || word[len - 1].equals("")) { if (word[0].equals("") && word[len - 1].equals("")) { for (int i = len - 2; i > 1; i--) { sb.append(word[i]); sb.append(" "); } sb.append(word[1]); } else if (word[0].equals("")) { for (int i = len - 1; i > 1; i--) { sb.append(word[i]); sb.append(" "); } sb.append(word[1]); } else { for (int i = len - 2; i > 0; i--) { sb.append(word[i]); sb.append(" "); } sb.append(word[0]); } } else { for (int i = len - 1; i > 0; i--) { sb.append(word[i]); sb.append(" "); } sb.append(word[0]); } return sb.toString(); }}
转载地址:http://wvuni.baihongyu.com/