From c3e77d11217885edeb0088eda9eb257504855029 Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Wed, 5 Feb 2025 23:35:39 +0900 Subject: [PATCH] https://leetcode.com/problems/check-if-one-string-swap-can-make-strings-equal --- ...one_string_swap_can_make_strings_equals.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 easy/check_if_one_string_swap_can_make_strings_equals.py diff --git a/easy/check_if_one_string_swap_can_make_strings_equals.py b/easy/check_if_one_string_swap_can_make_strings_equals.py new file mode 100644 index 0000000..e8e2451 --- /dev/null +++ b/easy/check_if_one_string_swap_can_make_strings_equals.py @@ -0,0 +1,21 @@ +# https://leetcode.com/problems/check-if-one-string-swap-can-make-strings-equal + +from typing import Optional + +class Solution: + def areAlmostEqual(self, s1: str, s2: str) -> bool: + first: Optional[int] = None + second: Optional[int] = None + for i in range(len(s1)): + if s1[i] == s2[i]: + continue + if first is not None: + if second is not None: + return False + if s1[first] != s2[i] or s1[i] != s2[first]: + return False + second = i + else: + first = i + return not ((first is None) ^ (second is None)) +