- categories: Code, Interview Question, leetcode, Medium
- source: https://leetcode.com/problems/determine-if-two-strings-are-close
- topics: Hash Table
Two strings are considered close if you can attain one from the other using the following operations:
- Operation 1: Swap any two existing characters.
- For example,
abcde -> aecdb
- For example,
- Operation 2: Transform every occurrence of one existing character into another existing character, and do the same with the other character.
- For example,
aacabb -> bbcbaa
(alla
’s turn intob
’s, and allb
’s turn intoa
’s)
- For example,
You can use the operations on either string as many times as necessary.
Given two strings, word1
and word2
, return true
if word1
and word2
are close, and false
otherwise.
from collections import Counter
class Solution:
def closeStrings(self, word1: str, word2: str) -> bool:
count1 = Counter(word1)
count2 = Counter(word2)
return (sorted(count1.values()) == sorted(count2.values()) and
count1.keys() == count2.keys())