Reverse Words in a string

by raviteja gunda

HTML

Given an input string s, reverse the order of the words.

A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.

Return a string of the words in reverse order concatenated by a single space.

Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.

 

Example 1:

Input: s = "the sky is blue"
Output: "blue is sky the"
Example 2:

Input: s = "  hello world  "
Output: "world hello"
Explanation: Your reversed string should not contain leading or trailing spaces.
Example 3:

Input: s = "a good   example"
Output: "example good a"
Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.

JavaScript

function reverseWords(s: string): string {
    return s.trim().replace(/  +/g, ' ').split(' ').reverse().join(' ');
};

//top
function reverseWords(s: string): string {
    return s.split(" ").filter((s) => s).reverse().join(" ");
};


//top2
function reverseWords(s: string): string {
  /*
  1. trim white space
  2. split words by space
  3. pop words into new array and join
  */
  let revArr = []
  let strArr = s.trim().split(' ')

  while (strArr.length) {
    let current = strArr.pop().trim().replaceAll(' ', '')
    if (current !== '') revArr.push(current)
  }
  
  return revArr.join(' ')
};