mirror of
https://github.com/TheAlgorithms/Python.git
synced 2026-09-28 13:33:11 +08:00
* Create largest_smallest_words.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update largest_smallest_words.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update largest_smallest_words.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update largest_smallest_words.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update largest_smallest_words.py * Update largest_smallest_words.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
def find_smallest_and_largest_words(input_string: str) -> tuple:
|
|
"""
|
|
Find the smallest and largest words in a given input string based on their length.
|
|
|
|
Args:
|
|
input_string (str): The input string to analyze.
|
|
|
|
Returns:
|
|
tuple: A tuple containing the smallest and largest words found.
|
|
If no words are found, both values in the tuple will be None.
|
|
|
|
Examples:
|
|
>>> find_smallest_and_largest_words("My name is abc")
|
|
('My', 'name')
|
|
|
|
>>> find_smallest_and_largest_words("Hello guys")
|
|
('guys', 'Hello')
|
|
|
|
>>> find_smallest_and_largest_words("OnlyOneWord")
|
|
('OnlyOneWord', 'OnlyOneWord')
|
|
"""
|
|
words = input_string.split()
|
|
if not words:
|
|
return None, None
|
|
|
|
# Handle punctuation and special characters
|
|
words = [word.strip(".,!?()[]{}") for word in words]
|
|
|
|
smallest_word = min(words, key=len)
|
|
largest_word = max(words, key=len)
|
|
|
|
return smallest_word, largest_word
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import doctest
|
|
|
|
doctest.testmod()
|
|
|
|
input_string = input("Enter a sentence:\n").strip()
|
|
smallest, largest = find_smallest_and_largest_words(input_string)
|
|
|
|
if smallest and largest:
|
|
print(f"The smallest word in the given sentence is '{smallest}'")
|
|
print(f"The largest word in the given sentence is '{largest}'")
|
|
else:
|
|
print("No words found in the input sentence.")
|