☰
Leetcode839相似字符串组
2026/10/22 6:18:40 网站建设 项目流程

题目分析

从0~n-1遍历单词,每个单词与后续单词进行比较,如果不在同一集合且相似则合并。

遍历两个字符串,记录不同位置的数量,如果不同位置的数量在2个以内则相似,超过了2个则不相似。

求解代码

publicstaticintMAXN=301;publicstaticint[]father=newint[MAXN];publicstaticintsets;publicstaticvoidbuild(intn){for(inti=0;i<n;i++){father[i]=i;}sets=n;}publicstaticintfind(inti){if(i!=father[i]){father[i]=find(father[i]);}returnfather[i];}publicstaticvoidunion(intx,inty){intfx=find(x);intfy=find(y);if(fx!=fy){father[fx]=fy;sets--;}}publicstaticintnumSimilarGroups(String[]strs){intn=strs.length;intm=strs[0].length();build(n);for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){if(find(i)!=find(j)){intdiff=0;for(intk=0;k<m&&diff<3;k++){if(strs[i].charAt(k)!=strs[j].charAt(k)){diff++;}}if(diff==0||diff==2){union(i,j);}}}}returnsets;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询