news 2026/4/17 16:33:23

leetcode 困难题 839. Similar String Groups 相似字符串组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 839. Similar String Groups 相似字符串组

Problem: 839. Similar String Groups 相似字符串组

解题过程

并查集,首先去除重复的字符串,然后初始化并查集合,对任意两个字符串,看是否只有两个字符不相同,若是则合并,最后输出根结点个数

Code

class Solution { public: vector<int> arr; int find(int x) { while(arr[x]!=x) x = arr[x]; return x; } void join(int a, int c) { int aa, cc; aa = find(a); cc = find(c); if(aa > cc) arr[aa] = cc; else arr[cc] = aa; } int numSimilarGroups(vector<string>& strs) { unordered_set<string> te; for(string& s : strs) { te.insert(s); } strs.clear(); for(auto && s : te) { strs.push_back(s); } int n = strs.size(); arr.resize(n); for(int i = 0; i < n; i++) { arr[i] = i; } unordered_map<string, int> ump; for(int i = 0; i < n; i++) { ump[strs[i]] = i; } string t0; for(int k = 0; k < n; k++) { for(int i = 0; i < n; i++) { if(i == k) continue; // if(find(k)==find(i)) continue; int s = 0; for(int j = 0; j < strs[k].size(); j++) { if(strs[k][j] != strs[i][j]) { s++; } if(s > 2) { break; } } if(s == 2) { join(i, k); } } } // for(int k = 0; k < n; k++) { // t0 = strs[k]; // for(int i = 0; i < t0.size(); i++) { // for(int j = i + 1; j < t0.size(); j++) { // swap(t0[i], t0[j]); // if(ump.find(t0) != ump.end()) { // join(k, ump[t0]); // } // swap(t0[i], t0[j]); // } // } // } int sum = 0; for(int i = 0; i < n; i++) { if(arr[i] == i) sum++; } return sum; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 20:55:55

DevOps自动化流水线集成OCR:CI/CD过程中验证文档一致性

DevOps自动化流水线集成OCR&#xff1a;CI/CD过程中验证文档一致性 在一次金融系统的版本发布中&#xff0c;团队发现新生成的用户协议PDF虽然文件哈希值与前一版不同&#xff0c;但内容看似无异。然而上线后客户投诉称关键条款被修改——原来排版错位导致某段免责说明“意外”…

作者头像 李华
网站建设 2026/4/16 16:52:16

vue+uniapp+基于Android的鲜花知识分享与销售商城系统的设计与实现小程序

文章目录摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 该系统基于Vue.js和Uniapp框架开发&#xff0c;结合Android平台&#xff0c;构建了一个…

作者头像 李华
网站建设 2026/4/1 19:11:24

vue+uniapp+基于企业微信的问卷调查系统的设计与实现_小程序6257e394--论文

文章目录摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 随着移动互联网的快速发展&#xff0c;企业微信作为企业内部沟通与协作的重要平台&…

作者头像 李华
网站建设 2026/4/16 21:07:45

Jupyter Notebook交互式体验:一步步运行HunyuanOCR推理脚本

Jupyter Notebook交互式体验&#xff1a;一步步运行HunyuanOCR推理脚本 在文档数字化、智能办公和跨语言内容处理需求日益增长的今天&#xff0c;如何快速验证一个先进OCR模型的实际效果&#xff0c;成了许多开发者和产品经理面临的现实问题。传统OCR方案往往依赖复杂的多模块流…

作者头像 李华
网站建设 2026/4/15 18:33:09

vue+uniapp+基于微信小程序的实验室考勤管理系统的设计与实现_t4n020ql--论文

文章目录摘要主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 随着移动互联网技术的快速发展&#xff0c;微信小程序因其轻量化、跨平台特性成为实验室…

作者头像 李华
网站建设 2026/4/17 15:29:10

网盘直链下载助手搭配OCR使用:自动识别压缩包内的文本内容

网盘直链下载助手搭配OCR使用&#xff1a;自动识别压缩包内的文本内容 在企业日常运营中&#xff0c;一个常见的痛点是&#xff1a;大量业务资料以“扫描件压缩包”的形式存放在网盘里——比如合同、发票、海外客户提供的多语言报告。这些文件看似整齐归档&#xff0c;实则如同…

作者头像 李华