- 博客(73)
- 收藏
- 关注
原创 LeetCode(27), 5. 最长回文子串
题目link解法1暴力循环,对每一个子字符串,判断是否是回文。记录回文子字符串的最大长度时间复杂度 O(N^3)空间复杂度 O(N)"""1. 暴力解法 对每一个子字符串,判断是否是回文。 记录回文子字符串的最大长度 时间复杂度 O(N^3) 空间复杂度 O(N)"""class Solution1: def longestPalindrome(self, s: str) -> str: size = len(s)
2020-07-14 03:20:19 136
原创 CSAPP: Data Lab 详解
文章目录CSAPP: Data LabbitXortminisTmaxallOddBitsnegateisAsciiDigitconditionalisLessOrEquallogicalNeghowManyBitsfloatScale2floatFloat2IntfloatPower2CSAPP: Data LabbitXor/* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal op
2020-05-21 21:27:57 1021
原创 C++ Note(4), Operator Overloading
文章目录Operator OverloadingIntroduction, `string` class Case StudyOperator OverloadingOverloading Binary OperatorsOverloading Unary OperatorsOverloading the Increment and Decrement OperatorsDynamic Memory ManagementPutting All Together, Case Study `Array` cla
2020-05-16 00:56:04 765
原创 C++ Note(3), A Deep Look on Class
explicit keyword in constructor means that the constructor can be called with exactly one argument.Default constructorA default constructor is a constructor which can be called with no arguments (either defined with an empty parameter list, or with ..
2020-05-14 23:46:42 209
原创 C++ Note(2), Pointer, Built-in Array, and C-style String
文章目录PointersBuilt-in ArrayUsing `const` with PointersNon-constant Pointer to Non-constant DataNon-constant Pointer to Constant DataConstant Pointer to Non-constant DataConstant Pointer to Constant DataPointer ArithmeticPointer Based StringPointersTo de
2020-05-14 03:53:31 256
原创 C++ Note(1), Fundamental key points
C++ NotesIdentifier 31 chars length limited recommendedAvoid identifier begin with _ or __Operator precedence and associativityClass name use CamelCase conventionNesting function not allowedCreate class instance DO NOT need new statement
2020-05-13 23:15:00 264
原创 C++专栏,写在前面的话
C++专栏,写在前面的话暑假学期,学校开了一门Advanced Programming课程,作为一门intermediate的编程课,主要讲C++的进阶用法和实践。这个专栏,作为课程的学习的记录和总结。纸上得来终觉浅,觉知此事要躬行。...
2020-05-11 21:49:58 173
原创 LeetCode(26), LRU Cache,Least Recently Used Cache
LRU CacheDescriptionDesign and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put.get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwis
2020-05-11 11:45:58 217
原创 Python学习笔记(29), 实战总结,编写Web框架,MVC,Restful API
文章目录Python Web实战总结(2)编写Web框架@get和@postRequestHandlermiddleware编写配置文件编写MVC构建前端编写APIPython Web实战总结(2)编写Web框架Web application的实质是客户端发送一个Request请求后,服务器接收到请求然后做出Response。Web框架的作用就是获取Request请求中的信息,例如路径,用户,GET,POST等,让程序员决定和编写处理请求的函数,这个函数的返回值不一定是Response对象,这个时候,
2020-05-11 06:42:25 283
原创 Python学习笔记(28),廖雪峰教程编写ORM和Model的总结
Python Web实战总结(1)搭建开发环境使用Python版本3.7,异步框架aiohttp,前端模板引擎jinja2,MySQL的Python异步驱动程序aiomysql编写Web App骨架我们的Web App建立在asyncio的基础上,因此用aiohttp写一个基本的app.py,参照aiohttp的官方文档:from aiohttp import webasync def hello(request): return web.Response(body=b'<h1
2020-05-09 06:07:15 281
原创 Python学习笔记(27),type和metaclass
type()动态语言的函数和类的定义,不是编译时定义的,而是运行时动态创建的例如:Hello class定义在hello.py模块中。class Hello: def hello(self, name='world'): print('Hello, %s.' % name)当Python解释器载入模块时,就会依次执行该模块的所有语句,执行结果就是动态地创建出Hello的class对象print(type(Hello))h = Hello()print(type(h))
2020-05-09 05:43:13 205
原创 Python学习笔记(26), 异步IO
文章目录异步IO协程asyncioasync/awaitaiohttp异步IO所谓的异步IO就是在一个线程内实现非阻塞IO。其意义在于,对于IO密集型任务,无需切换线程即可实现非阻塞IO。当代码需要执行一个耗时的IO操作时,它只发出IO指令,并不等待IO结果,然后就去执行其他代码,一段时候,当IO返回结果时,再通知CPU进行处理。协程子程序通过调用栈实现的,子程序调用总是一个入口,一次返回...
2020-05-07 23:21:23 231
原创 Python学习笔记(25), Web开发
文章目录Python Web开发Web开发简介HTTP协议简介WSGI接口Web框架使用模板Python Web开发Web开发简介Web开发经历的几个阶段:静态Web页面CGI(Common Gateway Interface), 处理用法发送的动态数据,用C/C++编写ASP/JSP/PHP, 脚本语言开发效率高,与HTML结合紧密,因此迅速取代CGI模式MVC, 为了解决直接用...
2020-05-07 23:20:18 208
原创 Python学习笔记(24), Python UDP编程
UDPTCP建立的是可靠连接,通信双方都可以以流的形式发送数据,UDP是面向无连接的协议。使用UDP时,不需要建立连接,只需要指导对方的IP地址和端口号,就可以直接发送,能不能到达就不知道了。UDP的优点是速度快,对于不要求可靠到达的数据,就可以使用UDP协议。UDP的通信双方也是客户端和服务端,服务器首先需要绑定端口import sockets = socket.socket(soc...
2020-05-06 23:06:07 200 1
原创 Python学习笔记(23), Python TCP编程
文章目录TCP客户端服务器小结TCP客户端import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# establish connections.connect(('www.sina.com.cn', 80))# send requests.send(b'GET / HTTP/1.1\r\nhost: w...
2020-05-06 22:27:22 282
原创 Python学习笔记(22),常用第三方模块,Pillow, requests, chardet, psutil
文章目录第三方模块Pillow操作图像requestschardetpsutil第三方模块Pillow在PIL的基础上创建了兼容的版本,名字叫Pillow。操作图像最常见的图像缩放操作,只需三四行代码from PIL import Image# 打开一个jpg图像文件,注意是当前路径:im = Image.open('test.jpg')# 获得图像尺寸:w, h = im....
2020-05-06 10:59:11 511
原创 Python学习笔记(21), 常用内置模块,contextlib, urllib,HTMLParser
文章目录Built-in modulescontextlib@contextmanager@closingurllibGetPOSTHandler小结XMLHTMLParser练习Built-in modulescontextlib在读写文件时,打开文件,使用完毕后要正确的关闭它,一种方式是使用try...finally,另一种更方便的方式是使用with open(filename, 'r'...
2020-05-06 04:14:14 508
原创 Python学习笔记(20), 常用内置模块,base64, struct, hashlib, hmac, itertools
文章目录常用内置模块base64structhashlibhmacitertools常用内置模块base64用记事本打开jpg, pdf这类文件,会看到一堆乱码,如果要让记事本能处理二进制文件,就需要一个二进制到字符串的转换方法。Base64是一种常见的二进制编码方法。Base64的原理与应用可以参考Base64的原理与应用对二进制数据进行处理,每三个字节一组,一共24个bit,将24个...
2020-05-05 23:51:01 310
原创 Python学习笔记(19), 常用内置模块,collections
文章目录collectionsnamedtupledequedefaultdictOrderedDictChainMapCountercollectionsnamedtuple例如表示一个二维坐标,p = (1, 2)很难看出是一个坐标,定义一个class又小题大做,这时,namedtuple就派上用场from collections import namedtuplePoint = n...
2020-05-05 04:59:16 275
原创 Python学习笔记(18), 常用内置模块,datetime
文章目录常用内建模块, datetimedatetime获取指定日期和时间datetime转换为timestamptimestamp转换为datetimestr转环为datetimedatetime转换为strdatetime加减本地时间转换为UTC时间时区转换练习常用内建模块, datetimedatetimedatetime是模块,datetime模块还包含一个datetime类。fr...
2020-05-05 01:38:16 517
原创 Python学习笔记(17), 正则表达式
文章目录正则表达式re模块切分字符串分组贪婪匹配编译练习正则表达式有关正则表达式的语法learn-regx需要转移的字符[ ] ( ) { } . * + ? ^ $ \ |判断正则表达式是否匹配,可以用match()方法或者search()方法。re模块import rere.match(r'^\d{3}\-\d{3,8}$', '010-12345')<re.Match...
2020-05-05 01:06:54 337
原创 LeetCode(25), Jewels and Stones
DescriptionYou’re given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how man...
2020-05-04 07:33:57 117
原创 LeetCode(24), Ransom Note
DescriptionGiven an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the ma...
2020-05-04 07:26:52 118
原创 Python学习笔记(16), 多线程 & 分布式进程
文章目录多线程Lock多核CPUThreadLocal进程 vs 线程分布式进程多线程Python中的线程是真正的POSIX Thread,而不是模拟出来的线程。这一点与Java不同,Java中的线程是运行在JVM上的线程。注意, Python由于设计时有GIL全局锁,导致了过线程无法利用多核。多线程的并发在Python中就是一个美丽的梦。尽管如此,还是来学习一下Python中的多线程,用...
2020-05-04 06:38:50 659
原创 Python学习笔记(15), 多进程
文章目录Python多进程`fork()`MultiprocessingPool子进程进程间通信Python多进程复习一下操作系统的基本知识,详细的介绍可以看《Operating System Concepts》进程与线程的概念进程与线程的区别,线程上下文切换代价小,一个进程可以有多个线程,同一个进程中的data和code部分是该进程中的线程所共享的,每个线程有自己独立stack和pro...
2020-05-04 04:14:04 272
原创 Python学习笔记(14),序列化
序列化把变量从内存中变成可存储或传输的过程称之为序列化, 在Python中叫pickling,在Java中叫serialization,其他语言中也有叫marshalling,flattening等等。Python提供了pickle模块实现序列化import pickled = dict(name= 'Bob', age=20, score=88)pickle.dumps(d)b'\...
2020-05-03 04:57:41 357
原创 Python学习笔记(13), 操作文件和目录
操作文件和目录环境变量import osos.environ # 查看系统中所有的环境变量os.environ.get('PATH') # 和终端输入 echo $PATH 结果一样'/Users/zoufan/Library/Anaconda3/anaconda3/bin:/Users/zoufan/Library/Python/3.7/bin:/usr/local/mysql/b...
2020-05-03 03:55:06 271
原创 Python学习笔记(12), 文件读写
文件读写文件读写的本质是调用操作系统的system interface。读文件以读文件的模式打开一个文件对象f = open('../module_test/hello.py', 'r') # 以读的方式打开一个文件f.read() # 一次读取文件的全部内容到内存,用一个str对象表示'print("in hello.py module")\n\nif __name__ =...
2020-05-03 03:53:56 290
原创 Python学习笔记(11),调试与测试
文章目录Python 调试与测试Python调试与测试调试与断言loggingpdbIDE单元测试Python 调试与测试Python调试与测试调试与断言调试的一种方法是打印中间结果print(...),但是这么做缺点在于调试完成后必须删除这些print语句也可以用断言assert来代替print()。def foo(s): n = int(s) assert n !=...
2020-05-03 01:57:28 162
原创 Python学习笔记(10), Python异常处理
Python异常处理Python错误处理Python中的错误处理机制与Java类似,内置了一套try...except...finally...错误处理机制try: print('tyr...') r = 10 / 0 print('result', r)except ZeroDivisionError as e: print('except:', e)f...
2020-05-03 01:54:43 340
原创 Python学习笔记(9),Python面向对象高级特性2 -- 定制类和多重继承
多重继承Python与Java不同,Python可以多重继承,在设计类时,可以考虑MixIn设计,一个类继承多个类,使其具有多个功能。定制类介绍了以下几种类的方法:__str__(), __iter__(), __next__(), __getitem__(), __getattr__(), __call__()__str__类似java中的toString()方法,print一个类调用...
2020-05-02 10:53:31 255
原创 LeetCode(23), Bitwise AND of Numbers Range
DescriptionGiven a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.Example 1:Input: [5,7]Output: 4Example 2:Input: [0,1]Ou...
2020-05-02 08:01:38 104
原创 LeetCode(22), Subarray Sum Equals K
DescriptionGiven an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.Example 1:Input:nums = [1,1,1], k = 2Output: 2Note:The l...
2020-05-02 07:43:11 98
原创 LeetCode(21), Leftmost Column with at Least a One
Description(This problem is an interactive problem.)A binary matrix means that all elements are 0 or 1. For each individual row of the matrix, this row is sorted in non-decreasing order.Given a row...
2020-05-02 04:46:31 133
原创 LeetCode(20), Construct Binary Search Tree From Preorder Traversal
DescriptionReturn the root node of a binary search tree that matches the given preordertraversal.(Recall that a binary search tree is a binary tree where for every node, any descendant of node.left ...
2020-05-02 04:08:18 149
原创 LeetCode(19), Search in Rotated Sorted Array
DescriptionSuppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).You are given a target value to search....
2020-05-02 00:04:00 94
原创 LeetCode(18), Minimum Path Sum
DescriptionGiven a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or...
2020-05-01 10:08:22 92
原创 LeetCode(17), Number of Islands
DescriptionGiven a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. Yo...
2020-05-01 07:08:23 98
原创 Python学习笔记(8),Python面向对象高级特性
Python面向对象高级特性给实例绑定属性或者方法给实例绑定一个参数class Student: passs = Student()s.name = 'Michael'print(s.name)Michael给实例绑定一个方法def set_age(self, age): self.age = ageset_age(s, 25)print(s.age)...
2020-05-01 05:33:41 268
原创 Python学习笔记(7), 面向对象编程基础
文章目录Python 面向对象编程Python中的访问限制Python中的继承与多态获取对象信息实例属性和类属性Python 面向对象编程Python中的访问限制class Student: def __init__(self, name, score): self.__name = name self._score = score s...
2020-05-01 02:38:42 264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人