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

    原题链接:https://leetcode.com/problems/word-pattern/description/
    实现如下:

    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * Created by clearbug on 2018/2/26.
     */
    public class Solution {
    
        public static void main(String[] args) {
            Solution s = new Solution();
    
            /**
             * Examples:
             pattern = "abba", str = "dog cat cat dog" should return true.
             pattern = "abba", str = "dog cat cat fish" should return false.
             pattern = "aaaa", str = "dog cat cat dog" should return false.
             pattern = "abba", str = "dog dog dog dog" should return false.
             */
            System.out.println(s.wordPattern("abba", "dog cat cat dog"));
            System.out.println(s.wordPattern("abba", "dog cat cat fish"));
            System.out.println(s.wordPattern("aaaa", "dog cat cat dog"));
            System.out.println(s.wordPattern("abba", "dog dog dog dog"));
        }
    
        /**
         * 方法一:使用内置哈希表
         *
         * Submission Detail: beats 25.66%
         * Runtime: 3 ms
         *
         * @param pattern
         * @param str
         * @return
         */
        public boolean wordPattern(String pattern, String str) {
            if (pattern == null || str == null) {
                return false;
            }
            Map<Character, String> map = new HashMap<>(pattern.length());
    
            char[] chars = pattern.toCharArray();
            String[] strings = str.split(" ");
            if (chars.length != strings.length) {
                return false;
            }
    
            for (int i = 0; i < chars.length; i++) {
                if (map.containsKey(chars[i])) {
                    String value = map.get(chars[i]);
                    if (!value.equals(strings[i])) {
                        return false;
                    }
                } else {
                    map.put(chars[i], strings[i]);
                }
            }
            Set<String> valueSet = new HashSet<>(map.values());
            if (map.keySet().size() != valueSet.size()) {
                return false;
            }
            return true;
        }
    }
    
  • 相关阅读:
    拟阵学习笔记
    HNOI 2016 解题报告
    HNOI 2015 解题报告
    一类动态规划问题状态的简化
    组合数学学习笔记
    简单多项式学习笔记
    基础线代学习笔记
    后缀数据结构学习笔记
    图论学习笔记
    AT3673 [ARC085D] NRE 题解
  • 原文地址:https://www.cnblogs.com/optor/p/8743683.html
Copyright © 2011-2022 走看看