题目
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
解题思路
模拟
- 句子按照空格分割为单词数组
- 翻转单词后重新拼装成句子
代码
class Solution {
public String reverseWords(String s) {
StringBuilder ans = new StringBuilder();
for (String str : s.trim().split(" ")) {
char[] chars = str.toCharArray();
reverseString(chars);
ans.append(chars).append(" ");
}
return ans.toString().trim();
}
public void reverseString(char[] s) {
int l = 0, r = s.length - 1;
while (l < r) {
char tmp = s[l];
s[l++] = s[r];
s[r--] = tmp;
}
}
}