Problem:
 Score : 300 points    Problem Statement You are given strings S and T consisting of lowercase English letters.  You can perform the following operation on S any number of times:  Operation: Choose two distinct lowercase English letters c_1 and c_2 , then replace every occurrence of c_1 with c_2 , and every occurrence of c_2 with c_1 .  Determine if S and T can be made equal by performing the operation zero or more times.      Constraints  1 \leq |S| \leq 2 \times 10^5  |S| = |T|  S and T consists of lowercase English letters.         Input Input is given from Standard Input in the following format:  S  T       Output If S and T can be made equal, print Yes ; otherwise, print No .        Sample Input 1 azzel
apple      Sample Output 1 Yes  azzel can be changed to apple , as follows:   Choose e as c_1 and l as c_2 . azzel becomes azzle .  Choose z as c_1 and p as c_2 . azzle becomes apple .        Sample Input 2 chokudai
redcoder      Sample Output 2 No  No sequences of operation can change chokudai to redcoder .       Sample Input 3 abcdefghijklmnopqrstuvwxyz
ibyhqfrekavclxjstdwgpzmonu      Sample Output 3 Yes

Solution (Python):
from collections import defaultdict
import sys
input = sys.stdin.readline


def main():
    S = input()[:-1]
    T = input()[:-1]

    ds = defaultdict(int)
    dt = defaultdict(int)
    for i in range(len(S)):
        ds[S[i:i+1]] += 1
        dt[T[i:i+1]] += 1
    
    ds = sorted(ds.items(), key=lambda x: x[1])
    dt = sorted(dt.items(), key=lambda x: x[1])

    if len(ds)!=len(dt):
        print('No')
        return
    for i in range(len(ds)):
        if ds[i][1] != dt[i][1]:
            print('No')
            return
    print('Yes')

if __name__ == '__main__':
    main()

Solution (Python):
from collections import defaultdict
S = list(input())
T = list(input())
l = len(S)
ds = defaultdict(str)
dt = defaultdict(str)
for i in range(l):
    if ds[S[i]] == "":
        ds[S[i]] = T[i]
    elif ds[S[i]] == T[i]:
        pass
    else:
        print('No')
        exit()
    if dt[T[i]] == "":
        dt[T[i]] = S[i]
    elif dt[T[i]] == S[i]:
        pass
    else:
        print('No')
        exit()

print('Yes')

Solution (Python):
from collections import Counter
s = input()
t = input()
convert_dict = {}
count_list = []
count = {}

for i in range(len(s)):
    if t[i] not in convert_dict.keys():
        convert_dict[t[i]] = s[i]

    else:
        if convert_dict[t[i]] != s[i]:
            print("No")
            exit()

for i in convert_dict.values():
    count_list.append(i)

count = Counter(count_list)

if max(count.values()) > 1:
    print("No")

else:
    print("Yes")