151. Reverse Words in a String
Reverse Words in a String
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.
Constraints:
1 <= s.length <= 104
s
contains English letters (upper-case and lower-case), digits, and spaces' '
.- There is at least one word in
s
.
Follow-up: If the string data type is mutable in your language, can you solve it in-place with O(1)
extra space?
function reverseWords(s) {
const ret = [];
let word = [];
for (let i = 0; i < s.length; ++i) {
if (s.charAt(i) === ' ') {
// We found the space, put word in front (if there is any)
word.length > 0 && ret.unshift(word.join(''));
// Reset the current word
word = [];
}
else {
// Add characters to the current word
word.push(s.charAt(i));
}
}
// If there is current word exists, add it in front
word.length > 0 && ret.unshift(word.join(''));
return ret.join(' ');
};
OR
/**
* @param {string} s
* @return {string}
*/
var reverseWords = function(s) {
let splitted =s.trim().split(" ").filter((val)=>val!='');
return splitted.reverse().join(" ");
};
OR
return s.trim().split(/[ ]+/).reverse().join(" ");
Conclusion
That’s all folks! In this post, we solved LeetCode problem 151. Reverse Words in a String
I hope you have enjoyed this post. Feel free to share your thoughts on this.
You can find the complete source code on my GitHub repository. If you like what you learn. feel free to fork 🔪 and star ⭐ it.
In this blog, I have tried to collect & present the most important points to consider when improving Data structure and logic, feel free to add, edit, comment, or ask. For more information please reach me here
Happy coding!
Comments
Post a Comment