zoukankan      html  css  js  c++  java
  • 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。

    这个是LeetCode上的一道题目。本机上运行时正确的,但是LeetCode上显示是错误的,所以没有办法了只能记录在博客上了。

    我的想法是先把pattern和str都转化成数组。例如"abba"就记录成 p[0] = a, p[1] = b, p[2] = b, p[3] = a。

    然后再使用hashmap统计字符出现在数组中的位置。

    最后将pattern和str统计的位置进行比较,如果相同就是遵循规则的,不同就是不遵循规则的。

    下面是代码。你也可以查看我的GitHub来查看更多LeetCode题目解析

    /**
         * 查看单词str是否匹配模式pattern
         * 
         * @param pattern
         * @param str
         * @return
         */
        public boolean wordPattern(String pattern, String str) {
            char[] p = pattern.toCharArray();
            String[] s = str.split(" ");
    
            HashMap<Character, String> pMap = new HashMap<Character, String>();
            for (int i = 0; i < p.length; i++) {
                if (pMap.containsKey(p[i])) {
                    String v = pMap.get(p[i]);
                    v = v + i;
                    pMap.put(p[i], v);
                } else {
                    pMap.put(p[i], String.valueOf(i));
                }
            }
    
            HashMap<String, String> sMap = new HashMap<String, String>();
            for (int i = 0; i < s.length; i++) {
                if (sMap.containsKey(s[i])) {
                    String v = sMap.get(s[i]);
                    v = v + i;
                    sMap.put(s[i], v);
                } else {
                    sMap.put(s[i], String.valueOf(i));
                }
            }
    
            Collection<String> values = pMap.values();
            Iterator<String> it = values.iterator();
            while (it.hasNext()) {
                String v = it.next();
                if (!sMap.containsValue(v))
                    return false;
    
            }
    
            return true;
        }
  • 相关阅读:
    单/多文档的窗体类属性修改(VC_MFC)
    RTTI 与消息机制(VC_MFC)
    对话框属性页(VC_MFC)
    插入符与路径(VC_MFC)
    重画控件与系统托盘图标编写(VC_MFC)
    颜色,文件和字体对话框(VC_MFC)
    ODBC 数据类型和API(VC)
    CTreeCtrl 和 CListCtrl 控件(VC_MFC)
    找回桌面清理向导清理多余IE图标
    win7任务栏缩略图消失的解决方法
  • 原文地址:https://www.cnblogs.com/cuglkb/p/10481947.html
Copyright © 2011-2022 走看看