/
実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点 : 300 点
問題文
英小文字のみからなる文字列 S, T が与えられます。
文字列 S に対して、次の操作を何度でも行うことができます。
操作: 2つの異なる英小文字 c_1, c_2 を選び、S に含まれる全ての c_1 を c_2 に、c_2 を c_1 に置き換える
0 回以上操作を行って、S を T に一致させられるか判定してください。
制約
- 1 \leq |S| \leq 2 \times 10^5
- |S| = |T|
- S, T は英小文字のみからなる
入力
入力は以下の形式で標準入力から与えられる。
S T
出力
S を T に一致させられる場合は Yes、そうでない場合は No を出力せよ。
入力例 1
azzel apple
出力例 1
Yes
次のように操作を行えば、azzel を apple にできます。
- c_1 として
eを、c_2 としてlを選ぶと、azzelがazzleになる - c_1 として
zを、c_2 としてpを選ぶと、azzleがappleになる
入力例 2
chokudai redcoder
出力例 2
No
どのように操作を行っても chokudai を redcoder にできません。
入力例 3
abcdefghijklmnopqrstuvwxyz ibyhqfrekavclxjstdwgpzmonu
出力例 3
Yes
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
eas c_1 andlas c_2.azzelbecomesazzle. - Choose
zas c_1 andpas c_2.azzlebecomesapple.
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