leetcode290. 单词规律

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

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

示例1:

输入: pattern = “abba”, str = “dog cat cat dog”
输出: true

代码一:单映射

class Solution {public boolean wordPattern(String pattern, String s) {Map<String, Character> map = new HashMap<>();List<String> list = new ArrayList<>();char[] charp = pattern.toCharArray();//将string字符串一空格拆分开     String[] string=s.split(" ");//如果两边的长度不相等,返回falseif(string.length!=pattern.length()) return false;for (int i = 0; i < string.length; i++) {if (map.containsKey(string[i])) {//如果已经存在这个key了,但是这个key的值映射的不是对应的pattern,不符合题意,返回falseif (map.get(string[i]) != charp[i])return false;} else {//如果没有这个值,就将这个值加入map.put(string[i], charp[i]);}}//不同的值不能映射同一个pattern,所以如果有一个值出现两次的话,那么他就一定不可以int[] seen = new int[26];for (char c : map.values()) {if (seen[c - 'a'] == 1)return false;seen[c - 'a'] = 1;}return true;}
}

代码二:双映射

class Solution {public boolean wordPattern(String pattern, String s) {Map<String, Character> map1 = new HashMap<>();Map<Character,String>  map2=new HashMap<>();char[] charp = pattern.toCharArray();String[] string=s.split(" ");if(string.length!=pattern.length()) return false;for (int i = 0; i < string.length; i++) {if (!map1.containsKey(string[i])) map1.put(string[i],charp[i]);if(!map2.containsKey(charp[i]))map2.put(charp[i],string[i]);//从string向patter映射和从pattern向string映射双边映射的值应该是对应的,如果不对应那么就是出错了。if(map1.get(string[i])!=charp[i]||!map2.get(charp[i]).equals(string[i]))return false;}return true;}
}

leetcode290. 单词规律相关推荐

  1. Leetcode290单词规律-map使用

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

  2. LeetCode单词规律解法

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

  3. AC Leetcode 290. 单词规律

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

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

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

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

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

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

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

  7. LeetCode 290. 单词规律(哈希)

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

  8. con和com开头单词规律_英语成绩总上不了120分?问题出在背单词!

    老师们常常说背单词是英语学习的基础,是因为真的要熟练掌握英语的听说读写,仅有基础词汇量是远远不够的:说背单词必要,是因为但凡英语学习要进入到一个更高的阶段,单词量不够就会成为继续提高的障碍. 一个比较 ...

  9. con和com开头单词规律_英语单词太多记不住?巧用思维导图打开单词记忆新大门...

     学习哥免费送福利  点击下方图片即可领取,6大福利任性领! 免费包邮到家(新疆.西藏等偏远地区除外) 学英语的我们都有过这样的深切体会:背英语单词枯燥.乏味,什么时候是个头?面对横在英语学习过程中这 ...

最新文章

  1. Java中如何锁文件
  2. Java HashMap遍历的两种方式
  3. leetcode 1143. 最长公共子序列
  4. C# 路由(Route)
  5. python 给word添加背景图片_Python如何使用word文档插入图片和表格
  6. php整站防注入程序,一个不错的php通用防注入程序
  7. 突然发现被点名(理想恋人游戏)
  8. 【线性代数公开课MIT Linear Algebra】 第十八课 行列式的性质
  9. 已解决jetty运行项目,@WebServlet注解失效
  10. 局域网不能远程控制_如何通过Windows自带的局域网远程控制连接两台设备
  11. C/C++[codeup 2064]编排字符串
  12. 解决传奇hero引擎和登陆器不配套的方法
  13. 1-junos基本操作
  14. MD5 Encryption Of String ( UTF-8 ) / UE4 MD5 加密
  15. 爱立信笔试c语言,爱立信招聘笔经_ 7索尼爱立信北京暑期实习笔试题_笔试
  16. multicast msdp 2
  17. 青蒿素发现者与两外籍科学家共获诺奖
  18. 【verilog】按键消抖(FPGA,低电平有效按键,状态机法)
  19. 今年的WWDC,真的很难说
  20. 开课吧 python课视频_开课吧人工智能时代的新起跑线python爬虫小课vip

热门文章

  1. 将iPhone照片导出、iCloud照片备份到电脑的方法
  2. Spring源码解读(一)——容器是如何初始化的
  3. 将圆滑软件中的数据改写为用grapher画多测道图
  4. LeetCode 玩筹码
  5. Linux Ubuntu 命令行文件系统的创建,挂载,卸载
  6. linux用户登录身份验证错误,启动 WLS 时的身份验证错误(解决linux下问题)
  7. 史无前例的这个 GitHub 汇总了 300 道 Python 面试题
  8. 学习 《模型思维》-斯科特·佩奇 笔记 9.29
  9. 蛊惑者马云发家史(曾推毛氏运动唐僧团队)三
  10. 达人评测 机械革命Z3 Air怎么样