LeetCode每日一题,839. Similar String Groups
先看题目描述
大意就是给定一个字符串列表 strs,让我们返回其中相似字符串组的个数,字符串相似的定义是:有两个字符串 X 和 Y,若交换 X 中两个字母的位置,可以使得 X 和 Y 相等,或者 X 和 Y 本身就相等,那么就可以说 X 和 Y 相似。至于相似字符串组,以 Example1 为例,tars 和 rats 相似,rats 和 arts 相似,那么 tars,rats 和 arts 就构成了一个相似字符串组,虽然 tars 和 arts 并不相似
算法和思路
并查集
这题我们可以当作图论的题来解决,将字符串看作节点,若两字符串相似,就视作两节点之间存在一条边,那么题目就可以看作是给定一张图,让我们求出图中连通分量的个数。我们可以使用并查集来实时维护图的连通性,求出连通分量的个数并返回
算法源码
并查集
代码中把字符串转化成了字符数组来处理,这样可以提高代码的运行效率
1 | class Solution { |