Given a string s
, reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: s = "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"
Example 2:
Input: s = "God Ding"
Output: "doG gniD"
Constraints:
1 <= s.length <= 5 * 104
s
contains printable ASCII characters.s
does not contain any leading or trailing spaces.s
.s
are separated by a single space.public String reverseWords(String s) {
StringBuilder sb = new StringBuilder();
for (String str : s.split(" ")) {
sb.append(reverseString(str.toCharArray())).append(" ");
}
return sb.deleteCharAt(sb.length() - 1).toString();
}
private String reverseString(char[] s) {
int p = s.length - 1;
for (int i = 0; i < s.length / 2; i++) {
char temp = s[i];
s[i] = s[p];
s[p--] = temp;
}
return new String(s);
}