[Practice]( Clever Berlin | CodeChef)
Author: edusanketdk
Tester: adityasonani
Editorialist: edusanketdk
DIFFICULTY:
CAKEWALK
PREREQUISITES:
Strings, Sets
PROBLEM:
Given two strings you need to check whether they are formed of same set of english alphabets.
QUICK EXPLANATION:
Compare their sets. If the two sets are equal, output YES
else No
.
EXPLANATION:
We are supposed to check whether the two strings are formed of same set of characters. That means we need to check if all characters present in string A are present in string B.
A brute force approach in python would look like:
for i in A:
if i not in B:
print("NO")
break
else:
print("YES")
But this approach is not very ideal because its redundant.
for example, let’s say string A is EEE
. So we are checking if E
is present in string B 3 times!
So, we can simply find out distinct characters from both strings and compare them. One way to do this is to find sets of both strings and compare them.
if set(A) == set(B):
print("YES")
else:
print("NO")
for example,
MNOPMNOP
ONNPM
here the the two strings form the sets {M, N, O, P}
and {O, N, P, M}
which are ultimately equal.
But,
XXYYZ
XXZ
here the sets are {X, Y, Z}
and {X, Z}
, so the strings are not made of same set of characters.
SOLUTIONS:
Editorialist's Solution
for tc in range(input().strip()):
print("YNEOS"[set(input().strip()) != set(input().strip())::2]