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:
- Both
pattern
andstr
contains only lowercase alphabetical letters. - Both
pattern
andstr
do not have leading or trailing spaces. - Each word in
str
is separated by a single space. - Each letter in
pattern
must map to a word with length that is at least 1. - 这个没啥可说的了,map下就行
public class Solution { public boolean wordPattern(String pattern, String str) { String[] s = str.split(" "); if(s.length!=pattern.length()) return false; Map<Character,String> map = new HashMap<Character,String>(); for(int i=0;i<pattern.length();i++) { if(!map.containsKey(pattern.charAt(i))) { if(map.containsValue(s[i])) return false; map.put(pattern.charAt(i),s[i]); } else { if(!map.get(pattern.charAt(i)).equals(s[i])) return false; } } return true; } }