Leetcode 893 特殊等价字符串组 from weekly contest 99

等价类问题使用并查集解决即可

题目要求所谓的移动只能在一个字符串的奇数号字符之间或者偶数号字符之间进行,所以我们要分别统计两个字符串的奇数号字符和偶数号字符的分布,然后比较是否等价,最基本的并查集操作

class Solution {
public:
    int find(int ufs[],int y)
    {
        return ufs[y]<0?y:find(ufs,ufs[y]);
    }
    void setUnion(int ufs[],int r1,int r2)
    {
        if(r1==r2) return;
        if(ufs[r1]& A) {
        int n=A.size(),ufs[1000],ans=0,cnt[1000][26][2]={};
        memset(ufs,-1,sizeof(int)*n);
        for(int i=0;i

 

你可能感兴趣的:(并查集)