Skip to content

Commit 946d092

Browse files
authored
Refactor reverse_letters function and update docstring
Updated the docstring to enhance clarity and added examples. Refactored the word reversal logic for better readability.
1 parent 68473af commit 946d092

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

strings/reverse_letters.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
def reverse_letters(sentence: str, length: int = 0) -> str:
22
"""
3-
Reverse all words that are longer than the given length of characters in a sentence.
4-
If ``length`` is not specified, it defaults to 0.
3+
Reverse words in a sentence that are longer than a specified length.
54
5+
Parameters:
6+
sentence (str): The input sentence containing words
7+
length (int): Minimum length of words to be reversed (default is 0)
8+
9+
Returns:
10+
str: Sentence with selected words reversed
11+
12+
Examples:
613
>>> reverse_letters("Hey wollef sroirraw", 3)
714
'Hey fellow warriors'
815
>>> reverse_letters("nohtyP is nohtyP", 2)
@@ -12,13 +19,25 @@ def reverse_letters(sentence: str, length: int = 0) -> str:
1219
>>> reverse_letters("racecar")
1320
'racecar'
1421
"""
15-
return " ".join(
16-
word[::-1] if len(word) > length else word for word in sentence.split()
17-
)
22+
23+
# Split the sentence into individual words
24+
words = sentence.split()
25+
26+
# Reverse words that have length greater than the specified value
27+
result = [
28+
word[::-1] if len(word) > length else word # reverse using slicing
29+
for word in words
30+
]
31+
32+
# Join the processed words back into a sentence
33+
return " ".join(result)
1834

1935

2036
if __name__ == "__main__":
2137
import doctest
2238

39+
# Run test cases defined in docstring
2340
doctest.testmod()
41+
42+
# Example execution
2443
print(reverse_letters("Hey wollef sroirraw"))

0 commit comments

Comments
 (0)