### areSentencesSimilarTwo 
from typing import *
def f_gold(sentence1: List[str], sentence2: List[str], similarPairs: List[List[str]]
) -> bool:
    if len(sentence1) != len(sentence2):
        return False
    n = len(similarPairs)
    p = list(range(n << 1))
    def find(x):
        if p[x] != x:
            p[x] = find(p[x])
        return p[x]
    words = {}
    idx = 0
    for a, b in similarPairs:
        if a not in words:
            words[a] = idx
            idx += 1
        if b not in words:
            words[b] = idx
            idx += 1
        p[find(words[a])] = find(words[b])
    for i in range(len(sentence1)):
        if sentence1[i] == sentence2[i]:
            continue
        if (
            sentence1[i] not in words
            or sentence2[i] not in words
            or find(words[sentence1[i]]) != find(words[sentence2[i]])
        ):
            return False
    return True