LeetCode刷题笔记-数据结构-day7 悠悠 2023-10-01 16:02 46阅读 0赞 #### 文章目录 #### * LeetCode刷题笔记-数据结构-day7 * * 90.单词规律 * * 1.题目描述 * 2.解题思路 * 3.代码 * 763.划分字母区间 * * 1.题目描述 * 2.解题思路 * 3.代码 ## LeetCode刷题笔记-数据结构-day7 ## ### 90.单词规律 ### #### 1.题目描述 #### > 原题链接:[90. 单词规律][90.] ![image-20220121103150201][] #### 2.解题思路 #### 算法:哈希表 用两个哈希表: 1. 一个哈希表记录pattern中每个字符对应str中的哪个字符串 2. 一个哈希表记录str中的字符串对应pattern中的哪个字符 3. 遍历过程中,如果发现有冲突就返回false 4. 最后没有冲突,还需判断pattern是否全部对应了,也就是说是否还有剩余字符 #### 3.代码 #### class Solution { public: bool wordPattern(string str, string s) { unordered_map<char,string> hash1; unordered_map<string,char> hash2; int k=0; for(int i=0,j=0;i<s.size();i++) { j=i; while(j<s.size()&&s[j]!=' ') j++; string t=s.substr(i,j-i); if(hash1.count(str[k])&&hash1[str[k]]!=t) return false; if(hash2.count(t)&&hash2[t]!=str[k]) return false; hash2[t]=str[k]; hash1[str[k]]=t; k++; i=j; } return k==str.size(); } }; ### 763.划分字母区间 ### #### 1.题目描述 #### > 原题链接:[763. 划分字母区间][763.] ![image-20220121103341976][] #### 2.解题思路 #### 算法:哈希表+贪心 1. 用一个哈希表记录每个字符出现的最末尾位置 2. 我们只需要保证某个最小区间的所有的数的最小位置和最大位置都在这个区间,那么这个区间就可以加入答案 3. 代码实现:可以用变量`end`记录符合要求区间的最大位置,`start`记录初始位置,直到`i==end`,说明已经符合要求了,可以加入 4. 题目要求尽可能多的片段,所以只要符合要求2就可以加入答案 #### 3.代码 #### class Solution { public: vector<int> partitionLabels(string s) { map<char,int> hash; for(int i=0;i<s.size();i++) hash[s[i]]=i; vector<int> res; int start=0,end=0; for(int i=0;i<s.size();i++){ end=max(hash[s[i]],end); if(end==i){ res.push_back(end-start+1); start=end=i+1; } } return res; } }; ![在这里插入图片描述][watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBATEwuTEVCUk9O_size_20_color_FFFFFF_t_70_g_se_x_16] [90.]: https://leetcode-cn.com/problems/word-pattern/ [image-20220121103150201]: https://img-blog.csdnimg.cn/img_convert/a7d76238a28aa1d1ce2e43fe4dfc5b93.png [763.]: https://leetcode-cn.com/problems/partition-labels/ [image-20220121103341976]: https://img-blog.csdnimg.cn/img_convert/e5ee52eea47b949978c82d556e1cd043.png [watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBATEwuTEVCUk9O_size_20_color_FFFFFF_t_70_g_se_x_16]: https://img-blog.csdnimg.cn/795f8a180c1241c8828a6e958559918e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEwuTEVCUk9O,size_20,color_FFFFFF,t_70,g_se,x_16
相关 刷题-DAY7 题目一 双向链表节点结构和二叉树节点结构是一样的,如果你把last认为是left,next认为是right的话。给定一个搜索二叉树的头节点head,请转化成一条有序的双向 淩亂°似流年/ 2023年10月13日 19:17/ 0 赞/ 69 阅读
相关 LeetCode刷题笔记-动态规划-day6 文章目录 LeetCode刷题笔记-动态规划-day6 152. 乘积最大子数组 1.题目 2.解题思路 我会带着你远行/ 2023年10月01日 18:12/ 0 赞/ 16 阅读
相关 LeetCode刷题笔记-动态规划-day3 文章目录 LeetCode刷题笔记-动态规划-day3 198. 打家劫舍 1.题目 2.解题思路 布满荆棘的人生/ 2023年10月01日 17:30/ 0 赞/ 19 阅读
相关 LeetCode刷题笔记-数据结构-day20 文章目录 LeetCode刷题笔记-数据结构-day20 215. 数组中的第K个最大元素 1.题目 2.解题 男娘i/ 2023年10月01日 17:06/ 0 赞/ 11 阅读
相关 LeetCode刷题笔记-数据结构-day18 文章目录 LeetCode刷题笔记-数据结构-day18 236. 二叉树的最近公共祖先 1.题目描述 2.解 蔚落/ 2023年10月01日 17:05/ 0 赞/ 27 阅读
相关 LeetCode刷题笔记-数据结构-day16 文章目录 LeetCode刷题笔记-数据结构-day16 199. 二叉树的右视图 1.题目描述 2.解题思路 电玩女神/ 2023年10月01日 17:03/ 0 赞/ 49 阅读
相关 LeetCode刷题笔记-数据结构-day13 文章目录 LeetCode刷题笔记-数据结构-day13 25. K 个一组翻转链表 1.题目描述 2.解题思 柔光的暖阳◎/ 2023年10月01日 16:52/ 0 赞/ 17 阅读
相关 LeetCode刷题笔记-数据结构-day9 文章目录 LeetCode刷题笔记-数据结构-day9 187.重复的DNA序列 1.题目描述 2.解题思路 骑猪看日落/ 2023年10月01日 16:28/ 0 赞/ 24 阅读
相关 LeetCode刷题笔记-数据结构-day8 文章目录 LeetCode刷题笔记-数据结构-day8 49.字母异位词分组 1.题目描述 2.解题思路 ゝ一世哀愁。/ 2023年10月01日 16:10/ 0 赞/ 23 阅读
相关 LeetCode刷题笔记-数据结构-day7 文章目录 LeetCode刷题笔记-数据结构-day7 90.单词规律 1.题目描述 2.解题思路 悠悠/ 2023年10月01日 16:02/ 0 赞/ 47 阅读
还没有评论,来说两句吧...