diff --git a/strings/reverse_letters.py b/strings/reverse_letters.py index cd1b7832d066..0a43c4e41dee 100644 --- a/strings/reverse_letters.py +++ b/strings/reverse_letters.py @@ -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) @@ -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"))