zoukankan      html  css  js  c++  java
  • 290. Word Pattern

    Given a pattern and a string str, find if str follows the same pattern.

    Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

    Example 1:

    Input: pattern = "abba", str = "dog cat cat dog"
    Output: true

    Example 2:

    Input:pattern = "abba", str = "dog cat cat fish"
    Output: false

    Example 3:

    Input: pattern = "aaaa", str = "dog cat cat dog"
    Output: false

    Example 4:

    Input: pattern = "abba", str = "dog dog dog dog"
    Output: false

    Notes:
    You may assume pattern contains only lowercase letters, and str contains lowercase letters that may be separated by a single space.

    class Solution {
        public boolean wordPattern(String pattern, String str) {
            String[] words = str.split(" ");
            if (words.length != pattern.length()) return false;
    
            final Map<Character, String> map1 = new HashMap<>();
            final Map<String, Character> map2 = new HashMap<>();
            for (int i = 0; i < words.length; ++i) {
                Character key1 = pattern.charAt(i);
                if (map1.containsKey(key1)) {
                     String value = map1.get(key1);
                    if (!value.equals(words[i])) return false;
                } else {
                    map1.put(key1, words[i]);
                }
    
                final String key2 = words[i];
                if (map2.containsKey(key2)) {
                     char value = map2.get(key2);
                    if (value != pattern.charAt(i)) return false;
                } else {
                    map2.put(key2, pattern.charAt(i));
                }
            }
            return true;       
        }
    }

    和Isomorphic Strings很类似,用两个HashMap, 记录从字符到字符串和字符串到字符的映射。

  • 相关阅读:
    base64 转blob,base64 转文件
    下载附件时防止连点
    windows更新失败
    ValidationError: webpack Dev Server Invalid Options
    导入,导出
    软件的结构
    VueRouter(一)
    根据IP判断所在地区
    phpcms v9 非超级管理员 发布不了内容的解决办法
    VIM 快捷键
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/11406769.html
Copyright © 2011-2022 走看看