【ARTS】01_14_左耳听风-20190211~20190217
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的更多相关文章
- 【ARTS】01_21_左耳听风-201900401~201900407
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_20_左耳听风-20190325~20190331
zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...
- 【ARTS】01_19_左耳听风-20190318~20190324
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_18_左耳听风-20190311~20190317
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_17_左耳听风-20190304~20190310
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_16_左耳听风-20190225~20190303
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_10_左耳听风-20190114~20190120
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_09_左耳听风-20190107~20190113
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_08_左耳听风-20181231~20190106
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- JDK1.5以后的版本特性
一.JDK1.5新特性 1.泛型:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.可以在编译的时候就能 ...
- Java并发注解Annotation
Java并发编程中,用到了一些专门为并发编程准备的 Annotation. 主要包括三类: 1.类 Annotation(注解) 就像名字一样,这些注解是针对类的.主有要以下三个: @Immutabl ...
- golang channle 管道
管道的使用介绍 现在要计算 1-N 的各个数的阶乘,并且把各个数的阶乘放入到 map 中.最后显示出来.要求使用 goroutine 完成 package main import ( "fm ...
- Python复习笔记(八)迭代器和生成器和协程
1. 迭代器 1.1 可迭代对象 判断xxx_obj是否可以迭代 在第1步成立的前提下,调用 iter 函数得到 xxx_obj 对象的 __iter__ 方法的返回值 __iter__ 方法的返回值 ...
- Web 学习笔记(一)百度统计
一.百度统计是什么? 百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使用体验,不 ...
- 搭建idea下的vue工程
需要先安装好nodejs和npm 输入下面的命令查看是否成功安装 node -v npm -v 一.开始 工作目录:IdeaProjects使用idea新建Static Web项目:demo 在dem ...
- 深入理解Python异步编程(上)
本文代码整理自:深入理解Python异步编程(上) 参考:A Web Crawler With asyncio Coroutines 一.同步阻塞方式 import socket def blocki ...
- ajax方式下载文件
在web项目中需要下载文件,由于传递的参数比较多(通过参数在服务器端动态下载指定文件),所以希望使用post方式传递参数.通常,在web前端需要下载文件,都是通过指定<a>标签的href属 ...
- Javaweb学习笔记——(十五)—————— sql复习
sql复习 数据库管理系统(DBMS)的概述 1.什么是DBMS:数据的仓库 *方便查询 *可存储的数据量大 *保证数据的完整.一致 *安全可靠 2.DBMS的发展:今天主流数据库为关系型数据库管理系 ...
- GCC编译器原理(三)------编译原理三:编译过程(2-1)---编译之词法分析
二.编译 引用文档:https://blog.csdn.net/chdhust/article/details/9040647 编译过程就是把预处理完的文件进行一系列词法分析.语法分析.语义分析及优化 ...