您的位置:首页 > 其它

leetcode 290. Word Pattern-单词模式|哈希表

2016-05-09 23:30 489 查看
原题链接:290. Word Pattern
【思路】

将 pattern 中的每个字符作为 hashmap 的 key,str 中的每个单词作为对应的 value,每次判断在 hashmap 中 pattern 所是否存在所对应的 key。如果有,说明之前 pattern 中已经有一个字符和 str 中的某个字母构成映射。如果没有,那么就要将这对映射添加到 hashmap 中,但注意在添加之前也要保证 value 值也是唯一的:

public boolean wordPattern(String pattern, String str) {
String[] words = str.split(" ");
HashMap<Character, String> map = new HashMap<Character, String>();
HashSet<String> set = new HashSet<String>();
if (words.length != pattern.length()) return false;
for (int i = 0; i < words.length; i++) {
if (map.containsKey(pattern.charAt(i))) {
if (!map.get(pattern.charAt(i)).equals(words[i])) {
return false;
}
} else {
if (map.containsValue(words[i])) return false;
map.put(pattern.charAt(i), words[i]);
}
}
return true;
}
29 / 29 test
cases passed. Runtime: 2
ms Your runtime beats 70.11% of javasubmissions.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: