LeetCode Word Pattern 哈希表

来源:互联网 发布:mysql中的存储过程 编辑:程序博客网 时间:2024/06/05 03:20

思路:

注意需要双向映射都是一对一的。既不能出现2个key对应1个value,也不能出现2个value对应1个key。

字符串的值相等要用equal。

可以将2个映射的循环判断放到1个循环中,但要注意逻辑。

java code:

public class Solution {    public boolean wordPattern(String pattern, String str) {        String[] words = str.split(" ");        int ptsize = pattern.length();        int strsize = words.length;        if(ptsize != strsize) return false;        Map<Character, String> htable = new HashMap<Character, String>();        char[] chs = pattern.toCharArray();        for(int i = 0; i < ptsize; ++i) {            if(htable.containsKey(chs[i])) {//1个key不能对应2个value                if(!htable.get(chs[i]).equals(words[i])) {                    return false;                }            }else if(htable.containsValue(words[i])) {//1个value不能对应2个key                return false;            }            htable.put(chs[i], words[i]);        }        return true;    }}
0 0
原创粉丝点击