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 }
  • 相关阅读:
    BZOJ2243: [SDOI2011]染色
    BZOJ3747: [POI2015]Kinoman
    BZOJ1293: [SCOI2009]生日礼物
    BZOJ3626 [LNOI2014]LCA
    BZOJ3514 Codechef MARCH14 GERALD07加强版
    BZOJ3295 [CQOI2011]动态逆序对
    BZOJ2588 [SPOJ10628]Count on a tree
    BZOJ1036 [ZJOI2008]树的统计Count
    CODEVS1490 [CTSC2008]网络管理
    BZOJ1070 [SCOI2007]修车
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/9937185.html
Copyright © 2011-2022 走看看