From b285eaf344d93c58a8e7220257f38053a80228ce Mon Sep 17 00:00:00 2001 From: Tithi Joshi Date: Wed, 21 Jan 2026 11:49:25 +0530 Subject: [PATCH 1/2] docs: improve docstrings and minor readability in anagrams module --- strings/anagrams.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/strings/anagrams.py b/strings/anagrams.py index 71cc142fb2ad..9cec196c9d41 100644 --- a/strings/anagrams.py +++ b/strings/anagrams.py @@ -6,8 +6,7 @@ def signature(word: str) -> str: - """ - Return a word's frequency-based signature. + """Return a word's frequency-based signature. >>> signature("test") 'e1s1t2' @@ -23,14 +22,13 @@ def signature(word: str) -> str: def anagram(my_word: str) -> list[str]: - """ - Return every anagram of the given word from the dictionary. + """Return every anagram of the given word from the dictionary. - >>> anagram('test') + >>> anagram("test") ['sett', 'stet', 'test'] - >>> anagram('this is a test') + >>> anagram("this is a test") [] - >>> anagram('final') + >>> anagram("final") ['final'] """ return word_by_signature[signature(my_word)] @@ -39,13 +37,17 @@ def anagram(my_word: str) -> list[str]: data: str = Path(__file__).parent.joinpath("words.txt").read_text(encoding="utf-8") word_list = sorted({word.strip().lower() for word in data.splitlines()}) -word_by_signature = collections.defaultdict(list) +word_by_signature: dict[str, list[str]] = collections.defaultdict(list) for word in word_list: word_by_signature[signature(word)].append(word) if __name__ == "__main__": - all_anagrams = {word: anagram(word) for word in word_list if len(anagram(word)) > 1} + all_anagrams = { + word: anagram(word) + for word in word_list + if len(anagram(word)) > 1 + } - with open("anagrams.txt", "w") as file: + with open("anagrams.txt", "w", encoding="utf-8") as file: file.write("all_anagrams = \n") file.write(pprint.pformat(all_anagrams)) From 4b0a7ca75e20c6a2f1b11e7ee9545dd4f229b4de Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 21 Jan 2026 06:21:21 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- strings/anagrams.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/strings/anagrams.py b/strings/anagrams.py index 9cec196c9d41..878f89369513 100644 --- a/strings/anagrams.py +++ b/strings/anagrams.py @@ -42,11 +42,7 @@ def anagram(my_word: str) -> list[str]: word_by_signature[signature(word)].append(word) if __name__ == "__main__": - all_anagrams = { - word: anagram(word) - for word in word_list - if len(anagram(word)) > 1 - } + all_anagrams = {word: anagram(word) for word in word_list if len(anagram(word)) > 1} with open("anagrams.txt", "w", encoding="utf-8") as file: file.write("all_anagrams = \n")