From 5784a8b632c79bb5ab24a871f42133807b95063f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=92=D0=B0=D1=81?= =?UTF-8?q?=D0=B8=D0=BB=D1=8C=D0=B5=D0=B2?= Date: Sat, 15 Nov 2025 13:04:11 +0300 Subject: [PATCH] feat: [LeetCode #1657] Determine If Two Strings Are Close MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тип: Hashmap Сложность: medium Временная сложность: O(n log n + m log m) Пространственная сложность: O(n + m) - Ссылка: https://leetcode.com/problems/determine-if-two-strings-are-close/ --- .../__init__.py | 0 .../solution.py | 17 +++++++++++++++++ .../test_determine_if_two_strings_are_close.py | 17 +++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/hashmap_set/determine_if_two_strings_are_close/__init__.py create mode 100644 src/hashmap_set/determine_if_two_strings_are_close/solution.py create mode 100644 tests/test_determine_if_two_strings_are_close.py diff --git a/src/hashmap_set/determine_if_two_strings_are_close/__init__.py b/src/hashmap_set/determine_if_two_strings_are_close/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/hashmap_set/determine_if_two_strings_are_close/solution.py b/src/hashmap_set/determine_if_two_strings_are_close/solution.py new file mode 100644 index 0000000..d7633bc --- /dev/null +++ b/src/hashmap_set/determine_if_two_strings_are_close/solution.py @@ -0,0 +1,17 @@ +from collections import Counter + + +class Solution: + def closeStrings(self, word1: str, word2: str) -> bool: + word1_counter = Counter(word1) + word2_counter = Counter(word2) + + return ( + sorted(word1_counter.values()) == sorted(word2_counter.values()) + and word2_counter.keys() == word2_counter.keys() + ) + + +print(Solution().closeStrings(word1="abc", word2="bca")) +print(Solution().closeStrings(word1="a", word2="aa")) +print(Solution().closeStrings(word1="cabbba", word2="abbccc")) diff --git a/tests/test_determine_if_two_strings_are_close.py b/tests/test_determine_if_two_strings_are_close.py new file mode 100644 index 0000000..4cce3e6 --- /dev/null +++ b/tests/test_determine_if_two_strings_are_close.py @@ -0,0 +1,17 @@ +import pytest +from src.hashmap_set.determine_if_two_strings_are_close.solution import ( + Solution, +) + + +@pytest.mark.parametrize( + "word1, word2, expected", + [ + ("abc", "bca", True), + ("a", "aa", False), + ("cabbba", "abbccc", True), + ], +) +def test_close_strings(word1, word2, expected): + solution = Solution() + assert solution.closeStrings(word1, word2) == expected