• 20201216 单词规律


    给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/word-pattern
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    示例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

    class Solution {
        public boolean wordPattern(String pattern, String s) {
            
        }
    }
     
     
    思路:把字符串切割后存入map 出现kv值不匹配return false
      public boolean wordPattern(String pattern, String s) {
            String[] sp=pattern.split("");
            String[] ss=s.split(" ");
    
            if(sp.length!=ss.length){
                return false;
            }
            Map map = new HashMap();
            for (int i=0;i<sp.length;i++){
                if(map.containsKey(sp[i])&& !map.get(sp[i]).equals(ss[i])){
                    return false;
                }
                if(map.containsValue(ss[i])&&
                        !map.get(sp[i]).equals(ss[i])){//这行报错
                    return false;
                }
                map.put(sp[i],ss[i]);
            }
            return true;
        }

    发现输入"abba" "dog dog dog dog"时报错空指针异常

    原来是map.get时map中没有key 将equals左右参数交换下就成功了

     public boolean wordPattern(String pattern, String s) {
            String[] sp=pattern.split("");
            String[] ss=s.split(" ");
    
            if(sp.length!=ss.length){
                return false;
            }
            Map map = new HashMap();
            for (int i=0;i<sp.length;i++){
                if(map.containsKey(sp[i])&& !map.get(sp[i]).equals(ss[i])){
                    return false;
                }
                if(map.containsValue(ss[i])&&
                        !ss[i].equals(map.get(sp[i]))){
                    return false;
                }
                map.put(sp[i],ss[i]);
            }
            return true;
        }
     
     
  • 相关阅读:
    jquery操作cookie
    javascript数组(五)
    javascript var变量删除
    javascript 语句和严格模式(三)
    javascript 表达式和运算符 (二)
    javascript类型判断
    javascript 六种数据类型(一)
    计算机网络之网络排查(四)
    计算机网络封装解封装(三)
    计算机网络—从输入网址到显示网页的过程(二)
  • 原文地址:https://www.cnblogs.com/hbhb/p/14144817.html
Copyright © 2020-2023  润新知