The challenge
Complete the function that accepts a string parameter, and reverses each word in the string. All spaces in the string should be retained.
Examples
1
2
|
"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps"
|
The solution in Python code
Option 1:
1
2
3
4
5
|
def reverse_words(text):
out = []
for word in text.split(" "):
out.append(word[::-1])
return " ".join(out)
|
Option 2:
1
2
|
def reverse_words(str):
return ' '.join(s[::-1] for s in str.split(' '))
|
Option 3:
1
2
|
def reverse_words(str):
return " ".join(map(lambda word: word[::-1], str.split(' ')))
|
Test cases to validate our solution
1
2
3
4
5
6
7
8
9
10
11
|
import test
from solution import reverse_words
@test.describe("Fixed Tests")
def fixed_tests():
@test.it('Basic Test Cases')
def basic_test_cases():
test.assert_equals(reverse_words('The quick brown fox jumps over the lazy dog.'), 'ehT kciuq nworb xof spmuj revo eht yzal .god')
test.assert_equals(reverse_words('apple'), 'elppa')
test.assert_equals(reverse_words('a b c d'), 'a b c d')
test.assert_equals(reverse_words('double spaced words'), 'elbuod decaps sdrow')
|