C - String Transformation Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300

問題文

英小文字のみからなる文字列 S, T が与えられます。

文字列 S に対して、次の操作を何度でも行うことができます。

操作: 2つの異なる英小文字 c_1, c_2 を選び、S に含まれる全ての c_1c_2 に、c_2c_1 に置き換える

0 回以上操作を行って、ST に一致させられるか判定してください。

制約

  • 1 \leq |S| \leq 2 \times 10^5
  • |S| = |T|
  • S, T は英小文字のみからなる

入力

入力は以下の形式で標準入力から与えられる。

S
T

出力

ST に一致させられる場合は Yes、そうでない場合は No を出力せよ。


入力例 1

azzel
apple

出力例 1

Yes

次のように操作を行えば、azzelapple にできます。

  • c_1 として e を、c_2 として l を選ぶと、azzelazzle になる
  • c_1 として z を、c_2 として p を選ぶと、azzleapple になる

入力例 2

chokudai
redcoder

出力例 2

No

どのように操作を行っても chokudairedcoder にできません。


入力例 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 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