leetcode290. 单词规律
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. 单词规律相关推荐
- Leetcode290单词规律-map使用
题目 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在 ...
- LeetCode单词规律解法
LeetCode单词规律解法 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str ...
- AC Leetcode 290. 单词规律
290. 单词规律 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之 ...
- leetcode 290. 单词规律(Java版)
题目 https://leetcode-cn.com/problems/word-pattern/ 题解 题目要求 pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着 双向连接 ...
- leetcode 290. 单词规律(hash)
给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向 ...
- LeetCode 291. 单词规律 II(回溯)
文章目录 1. 题目 2. 解题 1. 题目 给你一种规律 pattern 和一个字符串 str,请你判断 str 是否遵循其相同的规律. 这里我们指的是 完全遵循,例如 pattern 里的每个字母 ...
- LeetCode 290. 单词规律(哈希)
1. 题目 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之 ...
- con和com开头单词规律_英语成绩总上不了120分?问题出在背单词!
老师们常常说背单词是英语学习的基础,是因为真的要熟练掌握英语的听说读写,仅有基础词汇量是远远不够的:说背单词必要,是因为但凡英语学习要进入到一个更高的阶段,单词量不够就会成为继续提高的障碍. 一个比较 ...
- con和com开头单词规律_英语单词太多记不住?巧用思维导图打开单词记忆新大门...
学习哥免费送福利 点击下方图片即可领取,6大福利任性领! 免费包邮到家(新疆.西藏等偏远地区除外) 学英语的我们都有过这样的深切体会:背英语单词枯燥.乏味,什么时候是个头?面对横在英语学习过程中这 ...
最新文章
- Java中如何锁文件
- Java HashMap遍历的两种方式
- leetcode 1143. 最长公共子序列
- C# 路由(Route)
- python 给word添加背景图片_Python如何使用word文档插入图片和表格
- php整站防注入程序,一个不错的php通用防注入程序
- 突然发现被点名(理想恋人游戏)
- 【线性代数公开课MIT Linear Algebra】 第十八课 行列式的性质
- 已解决jetty运行项目,@WebServlet注解失效
- 局域网不能远程控制_如何通过Windows自带的局域网远程控制连接两台设备
- C/C++[codeup 2064]编排字符串
- 解决传奇hero引擎和登陆器不配套的方法
- 1-junos基本操作
- MD5 Encryption Of String ( UTF-8 ) / UE4 MD5 加密
- 爱立信笔试c语言,爱立信招聘笔经_ 7索尼爱立信北京暑期实习笔试题_笔试
- multicast msdp 2
- 青蒿素发现者与两外籍科学家共获诺奖
- 【verilog】按键消抖(FPGA,低电平有效按键,状态机法)
- 今年的WWDC,真的很难说
- 开课吧 python课视频_开课吧人工智能时代的新起跑线python爬虫小课vip
热门文章
- 将iPhone照片导出、iCloud照片备份到电脑的方法
- Spring源码解读(一)——容器是如何初始化的
- 将圆滑软件中的数据改写为用grapher画多测道图
- LeetCode 玩筹码
- Linux Ubuntu 命令行文件系统的创建,挂载,卸载
- linux用户登录身份验证错误,启动 WLS 时的身份验证错误(解决linux下问题)
- 史无前例的这个 GitHub 汇总了 300 道 Python 面试题
- 学习 《模型思维》-斯科特·佩奇 笔记 9.29
- 蛊惑者马云发家史(曾推毛氏运动唐僧团队)三
- 达人评测 机械革命Z3 Air怎么样