题库练习 Isomorphic Strings
← 上一题 下一题 →

A11834 | Isomorphic Strings

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a string $s$ of length $n$ consisting of lowercase English letters.

For two given strings $s$ and $t$ , say $S$ is the set of distinct characters of $s$ and $T$ is the set of distinct characters of $t$ . The strings $s$ and $t$ are isomorphic if their lengths are equal and there is a one-to-one mapping (bijection) $f$ between $S$ and $T$ for which $f(s_{i})=t_{i}$ . Formally:

1. $f(s_{i})=t_{i}$ for any index $i$ ,
2. for any character ![](/uploads/acgo/image/d08ffb8950dcc609_6b97c6419cdd.jpeg) there is exactly one character ![](/uploads/acgo/image/6f6b374347254fac_95c70b97c0f9.jpeg) that $f(x)=y$ ,
3. for any character ![](/uploads/acgo/image/6f6b374347254fac_95c70b97c0f9.jpeg) there is exactly one character ![](/uploads/acgo/image/d08ffb8950dcc609_6b97c6419cdd.jpeg) that $f(x)=y$ .

For example, the strings "aababc" and "bbcbcz" are isomorphic. Also the strings "aaaww" and "wwwaa" are isomorphic. The following pairs of strings are not isomorphic: "aab" and "bbb", "test" and "best".

You have to handle $m$ queries characterized by three integers $x,y,len$ ( $1<=x,y<=n-len+1$ ). For each query check if two substrings $s[x...\ x+len-1]$ and $s[y...\ y+len-1]$ are isomorphic.

输入格式

The first line contains two space-separated integers $n$ and $m$ ( $1<=n<=2·10^{5}$ , $1<=m<=2·10^{5}$ ) — the length of the string $s$ and the number of queries.

The second line contains string $s$ consisting of $n$ lowercase English letters.

The following $m$ lines contain a single query on each line: $x_{i}$ , $y_{i}$ and $len_{i}$ ( $1<=x_{i},y_{i}<=n$ , $1<=len_{i}<=n-max(x_{i},y_{i})+1$ ) — the description of the pair of the substrings to check.

输出格式

For each query in a separate line print "YES" if substrings $s[x_{i}...\ x_{i}+len_{i}-1]$ and $s[y_{i}...\ y_{i}+len_{i}-1]$ are isomorphic and "NO" otherwise.

输入输出样例

输入 #1
7 4
abacaba
1 1 1
1 4 2
2 1 3
2 4 3
输出 #1
YES
YES
NO
YES
C++ 编辑器
输入
输出