反转单词

反转单词

问题

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

比如说给你的字符串是:

"I am busy."

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

"I ma .ysub"

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

代码

public class AlgoCasts {

  // Time: O(n), Space: O(n)
  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);
  }

}

  转载请注明: ForwardXu 反转单词

 上一篇
反转字符串 反转字符串
反转字符串问题 这个题目说的是,给你一个字符串,你要写一个函数左右反转它。然后返回反转后的字符串。 比如说给你的字符串是: abcde 你要返回左右反转后的字符串: edcba 代码 public class AlgoCasts {
2018-12-09
下一篇 
区间合并 区间合并
区间合并问题 这个题目说的是,给你一个区间集合,你要把有重叠的区间合并起来。 比如说,给你的区间集合是: [1, 8] [2, 4] [9, 10] [10, 16] 这 4 个区间里,[1, 8] 区间包含了 [2, 4] 区间,于是
2018-12-09
  目录