对题解区做法的证明:
用 flag(i,j) 表示当只包含字母 i 和 j 时 s 和 t 是否相等。显然,当 flag(i,j) 为 1 时,我们可以理解为字母 i 和 j 在 s 和 t 中的相对位置相同。
不妨设当前询问的字符集为 C={c1,c2,…cn} 。我们定义字符串 s0 和 t0,初始为空串。我们枚举 i=1∼n,假设我们当前已经将所有 s 中为 {c1,c2,…,ci−1} 的字母按 s 中原本的相对顺序插入 s0,t0 同理,且此时 s0=t0。考虑将字母 ci 插入,若 ∀j∈[1,i−1],flag(cj,ci)=1,则可以说明,字母 ci 与 c1,c2,…,ci−1 在 s 和 t 中的相对位置都相同,那么将字母 ci 插入 s0 和 t0 后,s0 和 t0 仍然相同。证毕。
不知道有没有伪证,要是有的话还请斧正。