🌗 290. 单词规律

吞佛童子2022年10月10日
  • algorithm
  • String
小于 1 分钟

🌗 290. 单词规律

难度: 🌗

问题描述

img_3.png


解法

class Solution {
    public boolean wordPattern(String pattern, String s) {
        //  思路:
        // 借助 map
        HashMap<Character, String> map = new HashMap<>();
        HashSet<String> set = new HashSet<>(); // 双向绑定关系,即不能多个字符匹配同一个字符串
        int m = pattern.length();
        String[] array = s.split(" ");
        int n = array.length;
        if(m != n) {
            return false;
        }
        for(int i = 0; i < m; i ++) {
            char c = pattern.charAt(i);
            String cur = array[i];
            if(!map.containsKey(c)) {
                if(set.contains(cur)) {
                    return false;
                }
                map.put(c, cur);
                set.add(cur);
            } else {
                String exp = map.get(c);
                if(!exp.equals(cur)) {
                    return false;
                }
            }
        }
        return true;
    }
}

输出

img_2.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou