Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 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
e
as c_1 andl
as c_2.azzel
becomesazzle
. - Choose
z
as c_1 andp
as c_2.azzle
becomesapple
.
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