剑指 Offer II 117. 相似的字符串
链接:剑指 Offer II 117. 相似的字符串
题解:
1.建设图
2.bfs遍历
class Solution {
public:int numSimilarGroups(vector<string>& strs) {std::unordered_map<int, std::vector<int>> graph;for (int i = 0; i < strs.size(); ++i) {for (int j = 0; j < strs.size(); ++j) {if (is_similar(strs[i], strs[j])) {graph[i].push_back(j);}}}std::vector<bool> visited(strs.size(), false);int result = 0;for (int i = 0; i < strs.size(); ++i) {if (visited[i]) {continue;}bfs(graph, i, visited);++result;}return result;}
private:bool is_similar(const std::string& str1, const std::string& str2) {int cnt = 0;for (int i = 0; i < str1.size(); ++i) {if (str1[i] != str2[i]) {++cnt;}}return cnt <= 2;}void bfs(std::unordered_map<int, std::vector<int>>& graph, int begin, std::vector<bool>& visited) {std::queue<int> que;que.push(begin);visited[begin] = true;while (!que.empty()) {auto& f = que.front();que.pop();for (auto neighboard : graph[f]) {if (visited[neighboard]) {continue;}visited[neighboard] = true;que.push(neighboard);}}}
};
剑指 Offer II 117. 相似的字符串相关推荐
- Leetcode刷题笔记——剑指offer II (六)【图】
文章目录 图 695. 岛屿的最大面积 剑指 Offer II 106. 二分图 (每条边的两个结点都来自不同的集合) 剑指 Offer II 107. 矩阵中的距离 (最短路问题,建图,BFS) 剑 ...
- 剑指 Offer II 014. 字符串中的变位词
剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...
- 剑指 Offer II 017. 含有所有字符的最短字符串
剑指 Offer II 017. 含有所有字符的最短字符串 给定两个字符串 s 和 t .返回 s 中包含 t 的所有字符的最短子字符串.如果 s 中不存在符合条件的子字符串,则返回空字符串 &quo ...
- Leetcode刷题笔记——剑指offer II (一)【整数、数组、字符串、链表】
目录 整数 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 00 ...
- leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树
leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...
- 剑指 Offer II 114. 外星文字典(困难 图 bfs 哈希表 拓扑排序 字符串 数组)
剑指 Offer II 114. 外星文字典 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同. 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按 ...
- 力扣OJ 剑指 Offer II
目录 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 004. ...
- Leetcode刷题笔记——剑指offer II (五)【二分、排序、回溯】
这里写目录标题 二分查找 剑指 Offer II 069. 山峰数组的顶部 剑指 Offer II 070. 排序数组中只出现一次的数字 剑指 Offer II 071. 按权重生成随机数 剑指 Of ...
- LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和
剑指 Offer II 056. 二叉搜索树中两个节点之和 Ideas 这题有点类似一个组合题,首先是通过二叉树遍历得到一个序列,然后再通过LeetCode Algorithm 1. 两数之和的方法查 ...
最新文章
- Requirement already satisfied 解决方法
- 防盗链技术底层实现原理分析
- Acwing 1082. 数字游戏
- 修改linux的最大文件句柄数限制
- linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
- 学习资料(干货汇集)不断更新【更新于2017-9-17】
- PADS logic 和PADS layout 连接
- ctf misc 图片题知识点
- 2021-08-13
- matlab心电信号处理,基于MATLAB的心电信号的数字滤波处理
- 半导体封装测试英语词汇量的软件,半导体英语
- 怎么查看计算机mac地址,怎么查电脑的mac地址?电脑mac地址查询方法
- 云计算趋势:从SAS和RAID看服务器与存储的融合
- 【年终总结】2017年下半年年终总结——试着将一切归零,整装再出发
- 功能测试--如何对时间(年月日)进行测试
- matlab实现数据压缩,【Matlab】Huffman编码如何实现数据压缩
- java归并排序算法
- 选择SaaS供应商的15个关键问题
- WIN10下调用waveInOpen方法失败返回错误1的解决方法
- 鸿蒙灵根有哪些,关于神话中十大灵根,你知道的有我多吗?