小红和他的朋友小红是大学的室友,他们都对算法和数据结构非常着迷。一天,小红告诉小红他的新女友很喜欢玩字符串游戏,但是她总是拼不出正确的字符串。于是,小红想让小红帮忙解决这个问题。
小红询问小红女友玩的是什么游戏,小红女友告诉他她有两个长度为 n 的字符串 s 和 t,它们都只包含小写字母。她需要通过一些操作使得 s 和 t 相等,每次操作可以选择第一个字符串 s 的两个下标 i 和 j,使得 ∣i−j∣=k,然后交换 si 和 sj。但是她不知道应该如何操作,才能使得 s 和 t 相等。
每个距离为k的字符两两可以互相交换:我们可以发现 对于%k余数相同的下标字符 这些序列可以任意交换 形成任意的序列
我们可以按%k的余数对这些字符进行存储 然后对存储的字符进行排序
逐个比较排序后的字符串是否相等 如果有一个不相等 则不能满足条件 如果都相等 则可以满足条件