ARTS:

  • Algrothm: leetcode算法题目
  • Review: 阅读并且点评一篇英文技术文章
  • Tip/Techni: 学习一个技术技巧
  • Share: 分享一篇有观点和思考的技术文章

Algorithm

【leetcode】890. Find and Replace Pattern

https://leetcode.com/problems/find-and-replace-pattern

1)problem

You have a list of words and a pattern, and you want to know which words in words matches the pattern.

A word matches the pattern if there exists a permutation of letters p so that after replacing every letter x in the pattern with p(x), we get the desired word.

(Recall that a permutation of letters is a bijection from letters to letters: every letter maps to another letter, and no two letters map to the same letter.)

Return a list of the words in words that match the given pattern.

You may return the answer in any order.

Example 1:

Input: words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"
Output: ["mee","aqq"]
Explanation: "mee" matches the pattern because there is a permutation {a -> m, b -> e, ...}.
"ccc" does not match the pattern because {a -> c, b -> c, ...} is not a permutation,
since a and b map to the same letter.

Note:

1 <= words.length <= 50
1 <= pattern.length = words[i].length <= 20

2)answer

  • 使用HashMap来搞定,直接把映射一一的放入map中,如果出现过这个映射的话,就看新的对应关系和原来的映射是否相同。

  • 代码中使用了set,这个set很重要,因为这个保证了不会出现ccc对应abb这种。

  • words里面的每个word都和pattern长度相同,省去了判断长度的过程

3)solution

class Solution(object):
    def findAndReplacePattern(self, words, pattern):
        """
        :type words: List[str]
        :type pattern: str
        :rtype: List[str]
        """
        ans = []
        set_p = set(pattern)
        for word in words:
            if len(set(word))!=len(set_p):
                continue
            fx = dict()
            equal = True
            for i,w in enumerate(word):
                if w in fx:
                    if fx[w] != pattern[i]:
                        equal = False
                        break
                fx[w] = pattern[i]
            if equal:
                ans.append(word)
        return ans

if __name__ == '__main__':
    words = ['abc', 'deq', 'mee', 'aqq', 'dkd', 'ccc','ddz']
    pattern = 'abb'
    solu = Solution()
    print solu.findAndReplacePattern(words, pattern)

Review

【漏洞挖掘】WinRAR代码执行漏洞CVE-2018-20250

1)场景

WinRAR代码执行漏洞

2)问题难点

分析应用软件逆向分析思路

3)解决问题的方法

0x01 分析思路
0x02 漏洞细节
0x03 利用方式
0x04 效果
0x05 相关样本IOC
0x06 参考

4)方法细节

WinRAR代码执行漏洞CVE-2018-20250

https://www.cnblogs.com/17bdw/p/10416145.html

Tip

【安全开发】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务

1)场景

控制TcpDump的运行

2)问题难点

TcpDump定时开启关闭

3)解决思路

0x01 场景
0x02 思路
    查看文件个数
    显示文件大小
    关系运算符
    判断文件大小,超过大小终止程序
    sudo运行bash
    Windows与Linux文件转换
    计划任务部分
    检测文件目录大小
参考

4)方法细节

【Shell】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务

https://www.cnblogs.com/17bdw/p/10441183.html

Share

【业务】极客时间-左耳听风-程序员攻略-编程语言

1)场景

编程语言学习重点与资源

2)问题难点

学习资源整合

3)解决思路

0x1 前言
  编程语言
  理论学科
  系统知识
0x2 Java
0x3 C/C++
0x4 GO

4)方法细节

极客时间-左耳听风-程序员攻略-编程语言
https://www.cnblogs.com/17bdw/p/10589140.html

【ARTS】01_16_左耳听风-20190225~20190303的更多相关文章

  1. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  2. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  3. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  4. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  5. 【ARTS】01_17_左耳听风-20190304~20190310

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【ARTS】01_14_左耳听风-20190211~20190217

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 【ARTS】01_10_左耳听风-20190114~20190120

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 【ARTS】01_09_左耳听风-20190107~20190113

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 【ARTS】01_08_左耳听风-20181231~20190106

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. day-02(css,js)

    本文档并非个人所写,只是便于参考:回顾: html: 作用:展示 文件标签: <html> <head> <title></title> </he ...

  2. 2018 CCPC-FINAL 后记

    赛前认为这将会是我生涯最接近铁牌的一场比赛,遗憾的是没有抓住机会,又打了个铜出来. 6题可做题,去掉签到4道数学题可把我无聊坏了,幸好主办方出了个算法题给我自娱自乐了几个小时. Day1热身赛,贪心, ...

  3. IDEA tomcat 部署WEB项目

    1. 2. 3.

  4. 分析JVM GC Dump 工具

    GC 日志分析工具: http://gceasy.io/ JVM Dump 文件分析工具: IBM HeapAnalyzer

  5. ssh-keygen Linux 免密登录

    一.选择算法和密钥大小 rsa - 基于分解大数的难度的旧算法.RSA建议密钥大小至少为2048位,4096位更好.RSA正在变老,并且在保理方面取得了重大进展.可能建议选择不同的算法.在可预见的将来 ...

  6. 8.装饰模式(Decorator Pattern)

    子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等.按类继 ...

  7. css3 实现波浪(wave)效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Linux记录-JMX监控Tomcat上传到falcon

    1.登录测试服务器xxxxxx xxxxxx su root输入xxxx 2.先修改Tomcat的启动脚本,(linux下为catalina.sh),添加以下内容: CATALINA_OPTS=&qu ...

  9. LeetCode(194.Transpose File)(awk进阶)

    194. Transpose File Given a text file file.txt, transpose its content. You may assume that each row ...

  10. Hadoop 博文整理

    参考文章##搭建 使用yum安装CDH Hadoop集群   http://blog.javachen.com/2013/04/06/install-cloudera-cdh-by-yum/   Ha ...