P83 反转单词
算法 16 阅读
信号摘要
难度:Easy · 时长:03:49 · leetcode 557 · lintcode 1173
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个字符串,你要写一个函数反转这个字符串中的单词,然后返回处理后的字符串。注意,单词之间只用一个空格隔开。
比如说给你的字符串是:"I am busy."
反转这个字符串中的 3 个单词,得到:
"I ma .ysub"
注意,最后的句号要连同单词一起反转。
相关视频:81. 反转字符串
代码
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);
}
}