LeetCode刷题记录11——290. Word Pattern(easy)
目录
LeetCode刷题记录11——290. Word Pattern(easy)
题目
本题输入是两个字符串,输出是true或者false。计算过程为:依照字符串pattern的模板,去看字符串str的格式是否与pattern的相匹配,是则true,否则false。举个例子:有点类似小时候成语的格式一样:红红火火(aabb)、不了了之(abba)……。这题类似:abba->dog cat cat dog。
语言
java
思路
并行查看模式和字符串,比较他们最后出现的索引。使用map创建一个对象mymap,使用mymap.put的方法,该方法的意思应该是:如果第二次put进同样的key不同value,返回的值是被挤掉的那个value!不然就是null。
源码
public boolean wordPattern(String pattern, String str) { String[] words = str.split(" "); if (words.length != pattern.length()) return false; Map mymap = new HashMap(); for (Integer i=0; i<words.length; ++i) if (mymap.put(pattern.charAt(i), i) != mymap.put(words[i], i)) return false; return true; }
后记
此题方法借鉴于Stefan Pochmann大神的思路,具体可看Stefan Pochmann大神的原话