Word Pattern

mac2022-06-30  91

 

Given a pattern and a string str, find if str follows the same pattern.

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:

patterncontains only lowercase alphabetical letters, and str contains words separated by a single space. Each word in str contains only lowercase alphabetical letters.Both pattern and str do not have leading or trailing spaces.Each letter in pattern must map to a word with length that is at least 1.

用两个Hashmap!

  

1 public boolean wordPattern(String pattern, String str) 2 { 3 String[] words; 4 Map<String, Character> map1 = new HashMap<>(); 5 Map<Character,String> map2 = new HashMap<>(); 6 words = str.split(" "); 7 if(pattern.length()!=words.length) return false; 8 for(int i = 0; i<words.length;i++) 9 { 10 if(map1.containsKey(words[i])) 11 { 12 Character index = map1.get(words[i]); 13 if (index != pattern.charAt(i)) return false; 14 } 15 16 17 if(map2.containsKey(pattern.charAt(i))) 18 { 19 String index = map2.get(pattern.charAt(i)); 20 if (!index.equals(words[i])) return false; 21 } 22 23 24 map1.put(words[i],pattern.charAt(i)); 25 map2.put(pattern.charAt(i),words[i]); 26 } 27 return true; 28 29 }

 

转载于:https://www.cnblogs.com/hygeia/p/4858307.html

最新回复(0)