Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions strings/reverse_letters.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
def reverse_letters(sentence: str, length: int = 0) -> str:
"""
Reverse all words that are longer than the given length of characters in a sentence.
If ``length`` is not specified, it defaults to 0.
Reverse words in a sentence that are longer than a specified length.

Parameters:
sentence (str): The input sentence containing words
length (int): Minimum length of words to be reversed (default is 0)

Returns:
str: Sentence with selected words reversed

Examples:
>>> reverse_letters("Hey wollef sroirraw", 3)
'Hey fellow warriors'
>>> reverse_letters("nohtyP is nohtyP", 2)
Expand All @@ -12,13 +19,25 @@ def reverse_letters(sentence: str, length: int = 0) -> str:
>>> reverse_letters("racecar")
'racecar'
"""
return " ".join(
word[::-1] if len(word) > length else word for word in sentence.split()
)

# Split the sentence into individual words
words = sentence.split()

# Reverse words that have length greater than the specified value
result = [
word[::-1] if len(word) > length else word # reverse using slicing
for word in words
]

# Join the processed words back into a sentence
return " ".join(result)


if __name__ == "__main__":
import doctest

# Run test cases defined in docstring
doctest.testmod()

# Example execution
print(reverse_letters("Hey wollef sroirraw"))
Loading