zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)单词模式 个人题解

    给定一种 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 只包含小写字母, str 包含了由单个空格分隔的小写字母。  

    这题比较简单。使用hashmap可以较为快捷解决问题。特别的,在这题里需要注意value不唯一对应key的问题,比如“aabb”,“dog dog dog dog”案例中,dog对应了a和b。根据题意是要返回错误的。所以需要加上判断。

    代码如下:

     1 class Solution {
     2     public boolean wordPattern(String pattern, String str) {
     3         boolean ans = true;
     4         String[] ss = str.split(" ");
     5         Map<Character, String> map = new HashMap<>();
     6         if (ss.length != pattern.length())
     7             return false;
     8         for (int i = 0; i < pattern.length(); i++) {
     9             if (map.get(pattern.charAt(i)) == null) {
    10                 if (!map.containsValue(ss[i])) {
    11                     map.put(pattern.charAt(i), ss[i]);
    12                     continue;
    13                 } else
    14                     return false;
    15             }
    16             if (!map.get(pattern.charAt(i)).equals(ss[i])) {
    17                 ans = false;
    18                 break;
    19             }
    20         }
    21         return ans;
    22     }
    23 }
  • 相关阅读:
    Maven setting配置镜像仓库
    MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别
    Git常用命令
    Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
    例:判断是不是自有属性hasOwnProperty方法
    JS中原型链中的prototype与_proto_的个人理解与详细总结
    原型理解:prototype
    JS中attribute和property的区别
    面试题术语
    函数语法
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/9937185.html
Copyright © 2011-2022 走看看