反转单词

反转单词

问题

这个题目说的是,给你一个字符串,你要写一个函数反转这个字符串中的单词,然后返回处理后的字符串。注意,单词之间只用一个空格隔开。

比如说给你的字符串是:

"I am busy."

反转这个字符串中的 3 个单词,得到:

"I ma .ysub"

注意,最后的句号要连同单词一起反转。

代码

public class AlgoCasts {

  
  public String reverseWords(String s) {
    if (s == null || s.length() == 0) return s;
    char[] c = s.toCharArray();
    int start = 0, end = 0;
    while (start < c.length) {
      while (end < c.length && c[end] != ' ') ++end;
      for (int i = start, j = end-1; i < j; ++i, --j) {
        char tmp = c[i];
        c[i] = c[j];
        c[j] = tmp;
      }
      start = end + 1;
      end = start;
    }
    return new String(c);
  }

}