0557. Reverse Words in a String III
https://leetcode.com/problems/reverse-words-in-a-string-iii
Description
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.There is at least one word in
s
.All the words in
s
are separated by a single space.
ac
class Solution {
public String reverseWords(String s) {
// edge cases
if (s.length() <= 1) return s;
char[] chars = s.toCharArray();
int l = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ' ') { // meet space
reverse(chars, l, i-1);
l = i + 1;
}
}
reverse(chars, l, chars.length-1); // last word
return String.valueOf(chars);
}
private void reverse(char[] chars, int left, int right) {
while (left < right) {
char tmp = chars[left];
chars[left] = chars[right];
chars[right] = tmp;
left++;
right--;
}
}
}
Previous0556. Next Greater Element IIINext0558. Logical OR of Two Binary Grids Represented as Quad-Trees
Last updated
Was this helpful?