Problem p03252 - Generation 1

Orig Description

Score : 300 points
Problem StatementYou 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.
InputInput is given from Standard Input in the following format:
S
T
OutputIf S and T can be made equal, print Yes; otherwise, print No.
Sample Input 1azzel
apple
Sample Output 1Yes
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 2chokudai
redcoder
Sample Output 2No
No sequences of operation can change chokudai to redcoder.
Sample Input 3abcdefghijklmnopqrstuvwxyz
ibyhqfrekavclxjstdwgpzmonu
Sample Output 3Yes

Extracted Specification

Canonicalized Input Description:

Two strings S and T consisting of lowercase English letters.
1 ≤ |S| = |T| ≤ 2 × 10^5.

### Example Input:

```
azzel
apple
```

### Function Signature:
Write a function f(S, T) that takes in the input.
def f(S: str, T: str):
    '''
    S: a string
    T: a string
    '''

Test Case Generator

Sure! Here's a test case generator for the given problem statement:

```python
import random
import string

def generate_string(length):
    return ''.join(random.choices(string.ascii_lowercase, k=length))

def tcgen():
    # Length of the strings (1 ≤ |S| ≤ 2 × 10^5)
    length = random.randint(1, 200000)
    
    # Generate random strings S and T of the same length
    S = generate_string(length)
    T = generate_string(length)
    
    return S, T

# Example usage
S, T = tcgen()
print(S)
print(T)
```

This generator creates random strings `S` and `T` of the same length, ensuring that they fit within the constraints of the problem. You can use this in your competitive programming environment to generate test cases for the given problem.

Extract Arguments

def extract_arguments(fh):
    S = fh.readline().strip()
    T = fh.readline().strip()
    return S, T