比较string pattern

给一个pattern, check true or false, 比如abbba->cdddc就是true

sol: 每个字母一种映射(hashmap)

follow up: 一次check很多string, 比如给abbba, check一个字典里面所有跟他pattern相同的,返回一个List

sol: 编码abbba->12221,然后check

class Solution {
    public List<String> findPattern(String src, String[] dict) {
        List<String> rst = new ArrayList<>();
        if (src == null || src.length() == 0 || dict == null || dict.length == 0) {
            return rst;
        }

        String sr = coding(src);
        for (String s : dict) {
            String temp = coding(s);
            if (temp.equals(sr)) {
                rst.add(s);
            }
        }

        return rst;
    }

    private String coding(String s) {
        if (s == null || s.length() == 0) {
            return s;
        }

        Map<Character, Integer> map = new HashMap<>();
        char[] rst = new char[s.length()];
        char[] src = s.toCharArray();
        int cnt = 0;
        
        for (int i = 0; i < s.length(); i++) {
            char c  = src[i];
            if (!map.containsKey(c)) {
                map.put(c, ++cnt);
            }
            rst[i] = Character.forDigit(map.get(c), 10);
        }
       
        return new String(rst);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,422评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,350评论 0 33
  • 谢春花的≪借我≫是最近一直在单曲循环的歌,每一句歌词都深得我心. 心动到底是什么呢?我是一个愚钝的人,常常很难发现...
    向日葵喵君阅读 7,231评论 1 1
  • 2017.4.25:雨天,16-25度,星期二,爱博. 收到表白信,不知该怎么说. " 这两天过得好难受...
    45度向阳阅读 1,209评论 0 0
  • 九年前的今天,我们买了第一辆车。上午开回家,中午看电视,地震了。然后情况一天比一天吓人,一看电视就直接泪流满面。那...
    当妈姐阅读 1,742评论 0 0