LeetCode 557 Reverse Words in a String III

题意

给定一个字符串, 翻转字符串中的每个单词, 每个单词以空格分隔, 保留空格和初始单词顺序。

解法

首先按照空格对字符串进行分隔,然后将每个单词进行翻转后再拼接回字符串即可,需要注意拼接时记得加空格,但最后一个单词不需要加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public String reverseWords(String s) {
StringBuilder result = new StringBuilder();

String[] strs = s.split(" ");

for (String str : strs) {
char[] chars = str.toCharArray();
for (int i = 0, j = chars.length - 1; i < j; i++, j--) {
char c = chars[i];
chars[i] = chars[j];
chars[j] = c;
}
result.append(new String(chars)).append(" ");
}

return result.substring(0, result.length() - 1);
}
}

Runtime: 6 ms, faster than 93.75% of Java online submissions for Reverse Words in a String III.

  • 本文作者: 赵俊
  • 本文链接: http://www.zhaojun.im/leetcode-557/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!