- 博客(37)
- 收藏
- 关注
原创 数字范围的+- 1与字母ascii码(2)
关于range range(n)是0~n-1 range(a,n)是a ~n-1我想到一个关于取字符串子串的方法for i in range(len(s)+1):for j in range(i+1,len(s)+1):a = s[i:j]这里的+1是为了使从零开始的range和从1开始的s【】适配这个+1的思考来源是首先手写简单的字符串“abc”所以子串是“a b c ...
2019-05-07 15:15:05 986
原创 pytho3程序前的奇怪注释
没错 就是那个系统编码使用utf的注释# -*- coding:utf-8 -*-一般是没用的,但是有时候系统确实识别不到字符串,这个时候不加它就不行,会报错:import res = '5.2017年12月收购时,审计机构对笛女传媒出具的审计报告为标准无保留意见(苏亚核【2017】950号),本次审计报告中,审计机构称“由于受审计条件的限制,我们未能实施进一步的审计程序以获取充分、适当...
2019-04-26 10:03:44 154
原创 恢复旋转排序数据
def recoverRotatedSortedArray(self, nums): s = [] return s题简单,但是编译程序好像有问题nums = [4,5,1,2,3]s = []t = 0for i in range(len(nums)): if nums[i-1]>nums[i]: t = ifor i in range(t...
2019-04-16 17:19:48 138
原创 记匹配问题的通用解法
以a、b、c对应x、y、z为例,求满足a!=x,c!=x,z的对应组合代码如下:for i in range(ord('x'),ord('z') + 1): for j in range(ord('x'),ord('z') + 1): if i != j: for k in range(ord('x'),ord('z') + 1): ...
2019-04-15 10:42:00 344
原创 复杂点的数组中取数的和为定值
首先是基本的,数组n中取任意个数字,和为goal如果是两个数字,那就直接遍历即可。多个数字也能遍历好像,不过肯定特别麻烦所以我要想想该怎么弄这里用递归解决问题先附上别人的代码作者 WizardOzimport random lst = list(range(1,21))lst.reverse() def solve(lst,goal,result = []): if g...
2019-03-28 23:21:14 315
原创 字符编码-爬虫乱码
1 https://blog.csdn.net/w_linux/article/details/783702182 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b90003 电脑文档...
2019-02-22 17:43:56 261
原创 记一下思维定式
输出互不相等的三个数字构成的三位数,可以筛选出合理的数字然后去构成三位数,也可以直接产生任意三位数,然后通过 i !=j !=k 来过滤。输出分段函数的运算结果,可以是(大于10的部分计算一次、再算有没有大于20的部分、再算有没有大于30的部分…)也可以是(大于100的部分+剩下的,或者大于60的部分+剩下的)都有多种算法,正向和反向。这种反向的方式有时候会很方便,在O()无所谓的情况下...
2019-02-09 17:04:39 185
原创 10 独特的摩尔斯编码
现在给定一个单词列表,每个单词中每个字母可以写成摩尔斯编码。 例如,cab可以写成-.-.-…-,(把c,a,b的莫尔斯编码串接起来)。 我们称之为一个词的转换。返回所有单词中不同变换的数量。逻辑比较简单1 根据字母的ascii值对应摩尔斯编码,然后每个单词有自己编码2 set去重直接上代码words = ["gin","zen","gig","msg"]#words = ["zen...
2019-01-14 17:50:42 518
原创 数字范围的+- 1与字母ascii码
不清晰的点其实是提升最快的点,因为1 不清晰代表有问题,这个点可能出错,这时候就相当于不会 2 不清晰但是其实知道是怎么回事,只要老实研究思考一下就能解决,轻松。一1 我一直对数字范围不敏感,在算“八天后星期几”“1到30一共几个”的时候总会愣一下,这么直接写出来倒是发现了对包含本身的计算,其范围是需要-12 数组的下标从0开始,for i in range(10)的时候,i也从0开始r...
2019-01-14 11:50:13 1999
原创 8 有重复值么
判断list中是否有重复值:利用不包含重复值的set和包含的list的长度来判断class Solution: """ @param nums: the given array @return: if any value appears at least twice in the array """ def co
2019-01-07 17:29:26 137
原创 7 交替的二进制位 Binary Number with Alternating Bits
题很简单,一眼就知道是关于二进制运算的,而且我在第一时间就发现符合条件的整数,与它的左移1位后的结果相加,除了尾数全为1.十进制考虑的话,即整数n需满足n + (n<<1) = 2^i-1-i//2。但是实现上有些问题首先放上失败代码:class Solution: def hasAlternatingBits(self, n): # Write ...
2019-01-07 17:11:18 130
原创 6 最大公因数
c = []a = 5b = 15for i in range(min(a,b)): if a%(i+1) ==0 and b%(i+1) == 0: c.append(i+1)print(c)我觉得我这就写得很好。注意点:for i in xx是从0开始的
2018-12-26 17:32:17 318
原创 5零钱问题
n-m转换成100a + 50b + 20c。。。class Solution: """ def coinProblem(self, n, m): return (n-m)//100+(n-m)%100//50 + (n-m)%100%50//20 + (n-m)%100%50%20//10 + (n-m)%100%50%20%10//5 +...
2018-12-26 15:29:12 293
原创 4 the result of investment
数组funds,公司ABC初市值为a b c,每次对当前市值最低公司投资funds的数值,返回最后ABC最基本的方式是每次都进行比较,找最小值然后加funds(i),但我的程序竟然跑不起来,而且我现在还找不到原因,放上来打自己脸:class Solution: def getAns(self, funds, a, b, c): # Write your code he...
2018-12-25 17:43:20 151
原创 3 汉明权重
即判断整数中有几个1直接二进制展开的话,对于较大数字无法处理。因此要讲究下技巧两种方式,1是二进制运算,位与、左右移…每次n&1,1即000000…1,所以n&1返回的值要么是1 要么是0然后处理后的“n”,右移一位,继续判断最后计数2 高中学的二进制计算方法–除以2,最后统计所有余数即为二进制所以循环除以2,分两种情况:余1、整除,来讨论代码看我勤劳程度补充...
2018-12-25 14:45:15 567
原创 2 尾部的零
t = n//5k = t//5l = k//5。。。。n/=5python也是支持这种双符号运算的。少去很多循环–最简单的迭代 n /= 6n!=5 n != 5 不同,需要特别注意书写规范while n != 0 不能循环,只算一个判断条件循环靠的是 /=...
2018-12-25 14:44:30 155
原创 列表中最长元素
longest word 找出列表中最长元素找到具有某个特征值的元素最简单的查找是找到元素的某个特征,比如最大元素、最快速度、最漂亮的JC等。进阶的查找是找这个特征对应的元素一般实现的方法就是循环,“if ** = ***,return—”关于循环,有很简便的写法比如:max(len(i)for i in dicti)取集合dict中每个元素i的长度的最大值集合了“1循环取长度2取...
2018-12-25 14:42:34 3062
原创 第一次leetcode刷题
lincode的测试不需要自己进行输入输出,可以直接编写函数等待测试#关于python的函数,self 还不懂类中定义函数,必须要有self作第一参数python的for循环不需要i为整数,可以直接循环变量迭代逻辑。。函数逻辑:def,return有if的情况下,可以分开多次returnif。。return, 其他默认为“else”的情况,再次return递归函数:a 特殊情况...
2018-12-25 14:41:58 174
原创 简单爬虫实现1
1 使用python自带的urllib访问html网页2 BeautifulSoup处理数据 读取标签内容网页会有限制,得到的网页代码不全爬虫爬取数据可用模块…这样一来,工作量就集中在数据的处理上——筛选需要数据,去符号去语气词然后分词去停词再分析词频率…命令行打开程序,python 绝对路径\文件名cd位置是没有用哒1.爬数据import request from urllibd...
2018-12-25 14:40:23 571
原创 装饰器
装饰器:输入函数,对函数做增添之类的,返回函数另外@是针对函数。解释器会先读@之后的内容,然后作为@的输入如@a@b a(b(c()))def c()def log(func):def wrapper(*args,**kw):print(‘打开了一次fuc’)return wrapper...
2018-12-25 14:36:39 71
原创 数组和字典
1 定义数组a = 【i for i in range(10)】range函数构造一个整数列表 用于循环2 取数组a【1:3】3 set()设置集合集合中不允许重复所以list(set(a)) 可以对a进行去重...
2018-12-25 14:35:58 145
原创 链表
链表实现是靠复合类型定义节点然后节点之间互相可以连接起来不必拘泥于链表的抽象形式本质就节点连接。抽象形式应该为实际理解服务存在问题1:定义过程中,self._head的存在head非固定,只是约定俗成。单纯的表示头结点。class Solution:“”"@param: head: the first node of linked list.@return: An intege...
2018-12-25 14:35:33 71
原创 socket
socket通信客户端 服务器端编程客户端发消息,格式正确地址正确即可socket导入s.send发送请求dict变量存储数据while循环append之后输出即可服务器端比较麻烦,暂停再续...
2018-12-25 14:34:49 85
原创 datetime和time
from datetime import datetime指定dt = datetime(1995,11,0,00,00)dt.timestamp转换成到1970-1-1的秒数字符串转datetimecday = datetime.strptime(‘2015-6-1 18:19:59’, ‘%Y-%m-%d %H:%M:%S’)大写的年份和时分秒,中间空格也要一一对应,不得多余dat...
2018-12-24 11:47:32 230
原创 正则
定义字符串规则方便分类正则的描述,即通配符对单个字符 \d表示一个数字 \w表示一个字母或数字 \s表示一个空格对变长字符 *表示任意个字符 +表示至少一个 ?表示0个或一个{n}表示n个字符 {n,m}表示n-m个字符如 \d{3}\s进阶【】[0-9a-zA-Z_] 表示一个数字或字母或下划线[0-9a-zA-Z_]+ ...
2018-12-24 11:43:55 151
原创 文件操作
打开文件需要及时关闭释放资源和接口python有with语句方便操作D:\工作技能\情书.txtwith open(‘path’,‘r’)as f:print(f.read())因为编辑器用的notepad+,运行结果命令行页面可能显示不全,这时候就需要写到文件了...
2018-12-24 11:41:55 120 1
原创 错误调试
try、、except。。finally错误类型有钦定,比如ZeroDivisionError(除以零错误)、ValueError 值类型失误(另外错误可以用 “as e”来赋值,except ValueError as e 是固定语法——理解是因为每个错误互不交叉,所以虽然都是用“e”但是其实并不会干扰)无错误处理机制,异常会不停上抛直至顶端然后结束程序logging机制会记录异常并且程...
2018-12-24 11:40:26 250 1
原创 匿名函数lambda
lambda 匿名函数使用方式lambda x: #定义 就像def biubiubiu(x):ax+b;#或者x+1,或者X*2等等,函数主体普通函数def com(x):return x[“age”]对x[“age”:20,“name”:“gaylun”]返回“age”字段lambdalambda x:x[“age”] 直接返回函数…li=[{“age”:2...
2018-12-24 11:38:57 129
原创 type
type()函数可以查看一个类型或变量的类型,Hello是一个class,它的类型就是type,而h是一个实例,它的类型就是class Hello。type可以创建clss 类似于观测然后结果塌陷type(‘hello’,(object),dict(hello = fn))名称、继承父类、绑定函数编译器实质也是使用type进行class创建元类~没看...
2018-12-24 11:38:34 252
原创 枚举类
enum 枚举类!import导入包时,如果有同名文件会直接导入。导致实际导入失败命名py文件时需要注意,不能同包名相同。enum包中包括unique装饰器,拒绝重复定义方式1 Month = Enum(‘week’,(‘one’,‘two’,‘three’,‘four’,‘five’,‘6’,‘7’))q = Month.oneweek是枚举类的名字。这里month的“=”代表这个...
2018-12-24 11:38:04 267
原创 类
class 定义类s = Student()可为实例s添加属性-------类方法,__slots__限制条目,__str__返回print字符串,__repr__返回直接‘s’字符串,__iter__提供可操作的迭代对象,与__next__连用。之后可用getitem进行取值可为类添加类属性方法也算属性,添加进实例需要types包的methodtypeimport typess....
2018-12-24 11:36:59 86
原创 模块
模块导入sys之后可以使用sys变量。sys.argv存储了命令行所有参数,argv【0】是py的名称使用技巧:命令行运行py文件会将“name”置为“main”其他位置不会,因此可用“——name——”做if条件xxx private变量xxx 公开特殊变量...
2018-12-24 11:36:39 85
原创 闭包
闭包:调用函数后返回的不是直接结果,而是一个封闭的,再运行即可得到结果的函数。闭包是函数,闭包返回的也是函数,之后才是结果闭包定义的时候,内部变量会被引用。当变量变动时,闭包结果那个函数也会变动。def 闭包》》》f = 闭包()》》》f()》》》最终结果...
2018-12-24 11:35:12 100
原创 class中的__init__方法作用
class需要初始化,需要init绑定属性。但是init的必要性其实是不知道的。今儿看到了个别人的解释:class rectangle():如果没有__init__()初始化,绑定它的长和宽,其实是不耽误使用的,这些都是class里面方法的工作。但是关于class本身,这样它本身是没有长宽这属性的,print(rectangle)得到的是{}空集合。这是不合面向对象思想的。所以说,class...
2018-12-21 14:14:54 2927
原创 多线程爬
python支持多线程,不支持多进程。多线程操作显然比单线程耗时更低。import requestsimport timeimport queueimport threadinghosts = ['http://baidu.com','http://jianshu.com','http://taobao.com','http://tmall.com','http://jd.com']...
2018-12-20 17:51:31 80
原创 python3的queue模块
python3的queue模块queue是python的标准库,不需要installpython2里是Queue,3里是queue,所以抄代码的时候可能需要些调整。queue是用来实现队列结构,通过put()和get()import queueq = queue.Queue()for i in range(3): q.put(i) print(i)例子是元素的放入(put放入,...
2018-12-20 16:51:00 2699
原创 python链表计数实现
class Node(object): def init(self, val, next=None): self.val = val self.next = next定义节点,变量都是指针,赋值直接self.val = val。但是这里的含义还有点不太清楚class Solution: de...
2018-09-13 15:37:21 442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人