LeetCode290. 单词模式

给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。

这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。

示例1:

输入: pattern =
"abba"
, str =
"dog cat cat dog"

输出: true

示例 2:

输入:pattern =
"abba"
, str =
"dog cat cat fish"

输出: false

示例 3:

输入: pattern =
"aaaa"
, str =
"dog cat cat dog"

输出: false

示例 4:

输入: pattern =
"abba"
, str =
"dog dog dog dog"

输出: false


思路:以pattern字符串的每个字符作为哈希表的key,以str字符串中的每个单词作为value建立哈希表。

    class Solution {
        public boolean wordPattern(String pattern, String str) {
            if(pattern==null||str==null) {
                return false;
            }
            String[] words=str.split(" ");
            if(words.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.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;
        }

---------------------
作者:1号帅比
来源:CSDN
原文:https://blog.csdn.net/weixin_40550726/article/details/80536529
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-07-06 19:58  天涯海角路  阅读(105)  评论(0)    收藏  举报