LeetCode 893 | 特殊等价字符串组(Groups of Special-Equivalent Strings)
题目描述
给定一个字符串数组 words
,定义一种特殊的字符串等价关系:
你可以对字符串执行如下操作任意多次:
- 交换字符串中任意两个偶数下标上的字符,或者
- 交换字符串中任意两个奇数下标上的字符。
如果通过若干次这样的操作,字符串 words[i]
能变成 words[j]
,则称它们是 特殊等价 的。
现在,给定 words
,请你计算其中的特殊等价字符串组的数量。也就是说,将所有特殊等价的字符串归为一组,求这样的组的个数。
题目示例
words = ["zzxy", "xyzz", "zzyx", "yxzz"]
- "zzxy" 和 "xyzz" 是特殊等价的,因为:
-
- "zzxy" 通过交换偶数位 'z' 和 'x' 变成 "xzzy"
- 再交换奇数位 'z' 和 'y' 变成 "xyzz"
- "zzyx" 和 "yxzz" 也是特殊等价的。
最终特殊等价字符串组的数量是 2