557. Reverse Words in a String III

Difficulty:
Related Topics:
Similar Questions:

Problem

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

Solution (Java)

class Solution {
    public String reverseWords(String s) {
        int l;
        int r = 0;
        int len = s.length();
        char[] ch = s.toCharArray();
        for (int i = 0; i <= len; i++) {
            if (i == len || ch[i] == ' ') {
                l = r;
                r = i;
                reverse(ch, l, r - 1);
                r++;
            }
        }
        return new String(ch);
    }

    private void reverse(char[] s, int l, int r) {
        char c;
        while (r > l) {
            c = s[l];
            s[l++] = s[r];
            s[r--] = c;
        }
    }
}

Solution (Javascript)

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
  return s.split(' ').map(reverse).join(' ');
};

var reverse = function (word) {
  var len = word.length;
  var res = '';
  for (var i = 0; i < len; i++) {
    res += word[len - i - 1];
  }
  return res;
};

Explain:

nope.

Complexity: