290. Word Pattern java solutions

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:

  1. pattern = "abba", str = "dog cat cat dog" should return true.
  2. pattern = "abba", str = "dog cat cat fish" should return false.
  3. pattern = "aaaa", str = "dog cat cat dog" should return false.
  4. 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.

Subscribe to see which companies asked this question

 1 public class Solution {
 2     public boolean wordPattern(String pattern, String str) {
 3         HashMap<Character, String> hm = new HashMap<Character, String>();
 4         Set<String> set = new HashSet<String>();
 5         String[] arr = str.split(" ");
 6         if(arr.length != pattern.length()) return false;
 7         for(int i =0 ;i< pattern.length();i++){
 8             if(hm.get(pattern.charAt(i)) != null){
 9                 if(!hm.get(pattern.charAt(i)).equals(arr[i])) return false;
10             }else{
11                 if(set.contains(arr[i])) return false;
12                 else{
13                     hm.put(pattern.charAt(i),arr[i]);
14                     set.add(arr[i]);
15                 }
16             }
17         }
18         return true;
19
20     }
21 }
时间: 2024-08-08 20:49:00

290. Word Pattern java solutions的相关文章

290. Word Pattern

/* * 290. Word Pattern * 2016-7-2 by Mingyang * 这里加上了没有containsValue,因为这里如果abba 和 dog dog dog dog通不过, * 因为a已经包含dog了,b却也包含了dog,解决方法就是value不能重复 * 直接用containsValue就好了 */ public static boolean wordPattern(String pattern, String str) { String[] array=str.

LeetCode 290 Word Pattern(单词模式)(istringstream、vector、map)(*)

翻译 给定一个模式,和一个字符串str.返回str是否符合同样的模式. 这里的符合意味着全然的匹配,所以这是一个一对多的映射,在pattern中是一个字母.在str中是一个为空的单词. 比如: pattern = "abba". str = "dog cat cat dog" 应该返回真. pattern = "abba", str = "dog cat cat fish" 应该返回假. pattern = "aaa

LeetCode 290. Word Pattern (词语模式)

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 d

【一天一道LeetCode】#290. Word Pattern

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 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 pa

LeetCode 290. Word Pattern

不符合的情况有三种:1.pattern和str长度不符   2.pattern中不同字母指向str中同一词(a.b->同一词)   3.同一字母指向不同词(a->不同词) 1 class Solution { 2 public: 3 vector<string> split(string str){ 4 vector<string> res; 5 string tmp = ""; 6 for(int i = 0; i < str.length(

318. Maximum Product of Word Lengths java solutions

Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0. Example

290. Word Pattern [easy] (Python)

题目链接 https://leetcode.com/problems/word-pattern/ 题目原文 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. Exam

290. Word Pattern(LeetCode)

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 d

啊啊啊,真的没啥东西好写啊【leetcode】290. Word Pattern

public class Solution { public boolean wordPattern(String pattern, String str) { String[] s=str.split(" "); if(pattern.length()!=s.length) return false; for(int i=0;i<pattern.length();i++) { for(int j=0;j<i;j++) { if((pattern.charAt(i)!=pa