ARTS:

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

Algorithm

【leetcode】521. Longest Uncommon Subsequence I(最长不寻常的序列 I)

https://leetcode.com/problems/longest-uncommon-subsequence-i/

1)problem

给定一组两个字符串,您需要找到这组两个字符串中最长的不常见子序列。最长的不常见子序列定义为其中一个字符串的最长子序列,而此子序列不应是其他字符串的任何子序列。

子序列是通过删除一些字符而不更改其余元素的顺序,从一个序列派生的序列。一般来说,任何字符串都是其自身的子序列,而空字符串则是任何字符串的子序列。

输入将是两个字符串,输出需要是最长的不常见子序列的长度。如果不存在最长的不常见子序列,则返回-1。

2)answer

判断两字符串是否相等,如果相等就返回-1,不相等就返回较长的字符串长度

3)solution

class Solution(object):
    def findLUSlength(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: int
        """
        if len(a) != len(b):
            return max(len(a),len(b))
        if a==b:
            return -1
        else:
            return len(a)

if __name__ == '__main__':
    s = Solution()
    print s.findLUSlength( "aba", "cdc")

Review

【漏洞挖掘】扫描端口

1)场景

快速端口扫描

2)问题难点

python socket使用

https://docs.python.org/3/library/socket.html

3)解决问题的方法

  • TCP全连接扫描
socket.gethostbyname(hostname) :这个函数将主机名换换为IP地址,如              www.syngress.com将会返回IPv4地址为69.163.177.2。

socket.gethostbyaddr(ip_address) :这个函数传入一个IP地址将返回一个元组,                  其中包含主机名,别名列表和同一接口的IP地址列表。

socket.socket([family[, type[, proto]]]) :这个函数将产生一个新的socket,通过给定的socket    地址簇和socket类型,地址簇的可以是AF_INET(默认),AF_INET6或者是AF_UNIX,另外,socket类型可以为一个TCP套接字即SOCK_STREAM(默认),或者是UDP套    接字即SOCK_DGRAM,或者其他的套接字类型。最后协议号通常为零,在大多数    情况下省略不写。

socket.create_connection(address[, timeout[, source_address]] :这个函数传入一个包含IP地    址和端口号的二元元组返回一个socket对象,此外还可以选择超时重连。(注:这个    函数比socket.connect()更加高级可以兼容IPv4和IPv6)。

4)方法细节

# coding=UTF-8
import optparse
import socket

def connScan(tgtHost, tgtPort):
    try:
        connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connSkt.connect((tgtHost, tgtPort))   # 向指定IP和端口发送请求
        connSkt.send('ViolentPython\r\n')     # 发送内容
        results = connSkt.recv(100)           # 接收100个字节的回显数据
        print('[+]%d/tcp open' % tgtPort)
        print('[+]' + str(results))
        connSkt.close()
    except:
        print('[-]%d/tcp close' % tgtPort)

def portScan(tgtHost, tgtPorts):
    try:
        tgtIp = socket.gethostbyname(tgtHost)   # 这个函数将主机名换换为IP地址
    except Exception as e:
        print("[-] Cannot resolve '%s' " % tgtHost)
        return
    try:
        tgtName = socket.gethostbyaddr(tgtIp)   # 传入IP地址,返回一个元祖,主机名、别名、同一接口的IP列表
        print('\n[+] Scan Results for:%s' % tgtName[0])
    except:
        print('\n[+] Scan Results for:%s' % tgtIp)
    socket.setdefaulttimeout(1)    # 重连时间
    for tgtPort in tgtPorts:
        print('Scanning port' + str(tgtPort))
        connScan(tgtHost, int(tgtPort))   # 连接端口判断函数

def main():
    parser = optparse.OptionParser('usage%prog -H <target host> -p <target host>')
    parser.add_option('-H', dest='tgtHost', type='string', help='specify target host')
    parser.add_option('-p', dest = 'tgtPort', type='int', help='specify target port')
    options, args = parser.parse_args()
    if options.tgtHost is None or options.tgtPort is None:
        print(parser.usage)
        exit(0)
    else:
        tgtHost = options.tgtHost
        tgtPort = options.tgtPort
    args.append(tgtPort)
    portScan(tgtHost, args)

if __name__ == '__main__':
    main()

Tip

【安全开发】vc++调用exe获取输出信息

1)场景

把命令行结果输入到管道中,exe的输出信息都存在里面,然后读取出来。

2)问题难点

3)解决思路

CreatePipe() //创建匿名管道

CreateProcess() // 启动进程

ReadFile() // 读取管道内容

4)方法细节

vc++调用exe获取输出信息

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

Share

【业务】极客时间-左耳听风-程序员攻略-程序员修养

1)场景

程序员素养

2)问题难点

需要具备的基础品质和能力

3)解决思路

英文能力
问问题的能力
写代码的修养
安全防范
软件工程和上线
附录:编程规范
 编程语言相关
 前端开发相关
 移动端相关
 API 相关
 开发工具相关

4)方法细节

极客时间-左耳听风-程序员攻略-程序员修养

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

【ARTS】01_14_左耳听风-20190211~20190217的更多相关文章

  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_16_左耳听风-20190225~20190303

    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. MHA环境搭建

    准备工作 数据库架构 角色 ip地址 主机名 server_id Master Slave1 Slave2 配置三台服务器ssh免秘钥认证 ssh-keygen -t rsa ssh-copy-id ...

  2. SQL语法基础之高级应用

    SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...

  3. centos 7.4 安装gitlab

    centos 7.4 安装gitlab #curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/scrip ...

  4. Hbase 1.3.0 Rsgroup

    HBase RSGroup Git环境window环境下,警用crlf自动转换git config --global core.autocrlf false protobuf环境yum install ...

  5. Accord.NET Framework 介绍

    阅读目录 1.基本功能与介绍 Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET  ...

  6. Can't read swagger JSON from http://localhost:8080/Test/api-docs

    新手入坑Swagger,搜了下网上博客,各种整合费时费力.弄出来竟然报错: Can't read swagger JSON from http://localhost:8080/Test/api-do ...

  7. 使用JMeter进行一次简单的带json数据的post请求测试,json可配置参数

    配置: 1.新建一个线程组: 然后设置线程数.运行时间.重复次数. 2.新建Http请求: 设置服务器域名,路径,方法,编码格式,数据内容. 可以在函数助手中,编辑所需要的变量,比如本例中的随机生成电 ...

  8. Mysql查看表的建表语句

    已查询Test的建表语句为例: SHOW CREATE TABLE TEST

  9. 观察者模式--java

    写在前面 钩子函数.注册函数.回调函数,他们的概念其实是一样的. 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监 ...

  10. IntelliJ IDEA(2017)安装和破解

    IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具( ...