1. 题目

给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。

这里的 遵循完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。

示例1:
输入: pattern = "abba", str = "dog cat cat dog"
输出: true示例 2:
输入:pattern = "abba", str = "dog cat cat fish"
输出: false示例 3:
输入: pattern = "aaaa", str = "dog cat cat dog"
输出: false示例 4:
输入: pattern = "abba", str = "dog dog dog dog"
输出: false
说明:
你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/word-pattern
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 双哈希

  • 建立字符和字符串的双向哈希表
  • 存在key时,查找value必须相等
class Solution {public:bool wordPattern(string pattern, string str) {istringstream in(str);string word;unordered_map<char, string> m;unordered_map<string, char> n;for(int i = 0; i < pattern.length(); ++i){if(!(in >> word))//输入出错,没单词了return false;if(!m.count(pattern[i]) && !n.count(word))//都不存在,建立双向哈希表{m[pattern[i]] = word;n[word] = pattern[i];}else//有char在m中,或者word在n中{  //存在,必须相等匹配if(m.count(pattern[i]) && m[pattern[i]] != word)return false;if(n.count(word) && n[word] != pattern[i])return false;}}if(in >> word)//还能输入,str长了,不匹配return false;return true;}
};

LeetCode 290. 单词规律(哈希)相关推荐

  1. AC Leetcode 290. 单词规律

    290. 单词规律 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之 ...

  2. leetcode 290. 单词规律(Java版)

    题目 https://leetcode-cn.com/problems/word-pattern/ 题解 题目要求 pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着 双向连接 ...

  3. leetcode 290. 单词规律(hash)

    给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向 ...

  4. LeetCode 291. 单词规律 II(回溯)

    文章目录 1. 题目 2. 解题 1. 题目 给你一种规律 pattern 和一个字符串 str,请你判断 str 是否遵循其相同的规律. 这里我们指的是 完全遵循,例如 pattern 里的每个字母 ...

  5. 290. 单词规律。

    给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规 ...

  6. LeetCode单词规律解法

    LeetCode单词规律解法 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str ...

  7. LeetCode 127. 单词接龙(图的BFS/双向BFS)

    文章目录 1. 题目 2. 图的BFS解题 2.1 单向BFS 2.2 双向BFS !厉害了 1. 题目 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord ...

  8. Leetcode.126 单词接龙 II

    题目链接 Leetcode.126 单词接龙 II 题目描述 按字典 wordList完成从单词 beginWord到单词 endWord转化,一个表示此过程的 转换序列 是形式上像 beginWor ...

  9. 【LeetCode】﹝数学规律ி﹞第N位数字、可怜的小猪

    [LeetCode]﹝数学规律ி﹞第N位数字.可怜的小猪 文章目录 [LeetCode]﹝数学规律ி﹞第N位数字.可怜的小猪 乐团站位★ 罗马数字转整数★ 整数转罗马数字★★ 第 N 位数字★★ 数字 ...

最新文章

  1. LeetCode: Flatten Binary Tree to Linked List
  2. Sitemesh排除Exclude不装饰特定页面的解决办法
  3. Python学习笔记:类
  4. 删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题
  5. unbuntu server (linux系统)下面安装 lamp
  6. scratch desktop的基本使用 - 如何使用积木
  7. PHP:第五章——字符串输出函数
  8. alien指令 linux,使用alien命令让deb包和rpm包互相转换
  9. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)
  10. 京东让员工参观看守所;华为电视面世;苹果市值重回全球第一 | 极客头条
  11. 【支付】第三方易宝支付
  12. 代码对比工具,我就用这5个
  13. keil c语言怎么写程序,用keil软件如何编写单片机程序?
  14. 前端页面 div+css内容太长,实现点击展开余下全文(修改版)
  15. 在埋头写程序学技术的同时,有没有想到你们的老板和上司在搞什么?
  16. XSS注入进阶练习篇(三) XSS原型链污染
  17. Navicat Premium和Navicat for MySQL哪个好用?
  18. 微信小程序多次跳转后不能点_微信小程序运营需要先知道它的规则
  19. sýnesis™ Lite for Snort provides basic analytics for Snort IDS/IPS alert logs using the Elastic Stac
  20. am335x的网卡相关资料

热门文章

  1. Java实现连连看源代码文档_Java实现游戏连连看(有源代码)
  2. C++之Boost准标准库配置
  3. Golang切片的三种简单使用方式及区别
  4. bzoj3195 [Jxoi2012]奇怪的道路——状压DP
  5. 【学习总结】Markdown 使用的正确姿势
  6. 转载 ---资深HR告诉你:我如何筛选简历与选择人员的
  7. 蓝桥杯 之 基础练习10:十进制转十六进制
  8. linux中如何快速进入某个目录
  9. 详解Android Touch事件的传递机制
  10. Android系统下内存使用情况与监测