Complete the function that accepts a string parameter, and reverses each word in the string. All spaces in the string should be retained.
Examples
"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps"
Tests
reverseWords("The quick brown fox jumps over the lazy dog.")
reverseWords("double spaced words")
Good luck!
This challenge comes from jnicol on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email yo+challenge@dev.to with your suggestions!
Top comments (34)
For Python, one line
Well done! It could also be
I think this would fail with doubles spaces in a sentence...
That's true :( looks like the right implementation is
you don't need to use
(' ')
to split by spaces :)That's what happens when you write too much js code 😅 edited thanks!
Looks great :)
Haskell
Very elegant.
Without libraries:
reverseWords = unwords . map reverse . words
This looks very clean, well done. I think I would have gone for that one if keeping spaces wasn't an issue, but it is in this challenge.
The second code example from this post is wrong in the sense that spaces must be kept, and only a few provided solutions here are working because the example was not clear enough on what was expected.
I always lookup for the original challenge in Codewars to get a better specification to what I'm supposed to provide as a valid solution.
Original challenge specification.
Javascript
I avoided split("") as it breaks with non BMP characters. The spread operator works just as well for splitting strings into individual characters and won't break astral characters.
Notice how if I use split the output is messed up on my last test case.
For php
Befunge-93
This version current works if the end of input pushes -1 on the stack (due to the interpreter I used), change 3 characters and it works for a carriage return
ES6:
More python:
Here are the PHP codes about using
foreach
andfor
loops to complete:JavaScript (imperative & linear):
JavaScript (ES6) (golf)
Or more simply:
For Java
Another Python:
Try it online!
For Elixir
Perl:
Try it online!