290. Word Pattern
来源:互联网 发布:水冶豫广网络 编辑:程序博客网 时间:2024/06/06 17:29
Given a pattern
and a string str
, find if str
follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in pattern
and a non-empty word in str
.
Examples:
- pattern =
"abba"
, str ="dog cat cat dog"
should return true. - pattern =
"abba"
, str ="dog cat cat fish"
should return false. - pattern =
"aaaa"
, str ="dog cat cat dog"
should return false. - pattern =
"abba"
, str ="dog dog dog dog"
should return false.
Notes:
You may assume pattern
contains only lowercase letters, and str
contains lowercase letters separated by a single space.
Credits:
Special thanks to @minglotus6 for adding this problem and creating all test cases.
public class Solution { public boolean wordPattern(String pattern, String str) { HashMap<Character, String> hs = new HashMap<Character, String>(); String[] strs = str.trim().split("\\s"); if (pattern.length() != strs.length) { return false; } for (int i = 0; i < strs.length; i ++) { if(hs.containsKey(pattern.charAt(i))) { if (!strs[i].equals(hs.get(pattern.charAt(i)))) { return false; } } else { if (hs.containsValue(strs[i])){ return false; } hs.put(pattern.charAt(i), strs[i]); } } return true; }}另一种巧妙的方法是利用hashmap 的put 方法,put 会返回key 之前的value 或者 null(无key 时)。代码如下:
public boolean wordPattern(String pattern, String str) { String[] words = str.split(" "); if (words.length != pattern.length()) return false; Map index = new HashMap(); for (Integer i=0; i<words.length; ++i) if (index.put(pattern.charAt(i), i) != index.put(words[i], i)) return false; return true;}
0 0
- 【leetcode】290. Word Pattern
- 【leetcode】290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern LeetCode
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- Leetcode 290. Word Pattern
- 290. Word Pattern
- 【LeetCode】290. Word Pattern
- 290. Word Pattern
- LeetCode-290. Word Pattern
- LeetCode *** 290. Word Pattern
- JavaScript获取一个礼拜前的日期和当前日期
- 中科院计算所培训中心新一期javascript培训结束
- [李景山php]每天TP5-20170131|thinkphp5-Request.php-3
- 【JAVA 17.6 + 17.7】+ IO
- 1.计算机硬件基础-计算机结构(2)
- 290. Word Pattern
- 贝塞尔风暴 - 超炫GABottleLoading效果
- 真格基金 · 王强:判断一个项目的好坏,我会做的五个思考
- javaweb项目的一般目录结构
- LintCode 73- 前序遍历和中序遍历树构造二叉树
- 是什么让投资机构决定投资?这家公司给出了自己的“交易备忘录”
- install mysql on the linux
- 二进制文件×××.csproj已经是性能会话的一部分
- 【实践】【分离个位数】