![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常见小型程序与刷题
qq_33612402
这个作者很懒,什么都没留下…
展开
-
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 · 403 阅读 · 0 评论 -
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 · 113 阅读 · 0 评论 -
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 · 108 阅读 · 0 评论 -
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 · 116 阅读 · 0 评论 -
10 独特的摩尔斯编码
现在给定一个单词列表,每个单词中每个字母可以写成摩尔斯编码。 例如,cab可以写成-.-.-…-,(把c,a,b的莫尔斯编码串接起来)。 我们称之为一个词的转换。返回所有单词中不同变换的数量。逻辑比较简单1 根据字母的ascii值对应摩尔斯编码,然后每个单词有自己编码2 set去重直接上代码words = ["gin","zen","gig","msg"]#words = ["zen...原创 2019-01-14 17:50:42 · 471 阅读 · 0 评论 -
记一下思维定式
输出互不相等的三个数字构成的三位数,可以筛选出合理的数字然后去构成三位数,也可以直接产生任意三位数,然后通过 i !=j !=k 来过滤。输出分段函数的运算结果,可以是(大于10的部分计算一次、再算有没有大于20的部分、再算有没有大于30的部分…)也可以是(大于100的部分+剩下的,或者大于60的部分+剩下的)都有多种算法,正向和反向。这种反向的方式有时候会很方便,在O()无所谓的情况下...原创 2019-02-09 17:04:39 · 161 阅读 · 0 评论 -
复杂点的数组中取数的和为定值
首先是基本的,数组n中取任意个数字,和为goal如果是两个数字,那就直接遍历即可。多个数字也能遍历好像,不过肯定特别麻烦所以我要想想该怎么弄这里用递归解决问题先附上别人的代码作者 WizardOzimport random lst = list(range(1,21))lst.reverse() def solve(lst,goal,result = []): if g...原创 2019-03-28 23:21:14 · 267 阅读 · 0 评论 -
恢复旋转排序数据
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 · 113 阅读 · 0 评论 -
3 汉明权重
即判断整数中有几个1直接二进制展开的话,对于较大数字无法处理。因此要讲究下技巧两种方式,1是二进制运算,位与、左右移…每次n&1,1即000000…1,所以n&1返回的值要么是1 要么是0然后处理后的“n”,右移一位,继续判断最后计数2 高中学的二进制计算方法–除以2,最后统计所有余数即为二进制所以循环除以2,分两种情况:余1、整除,来讨论代码看我勤劳程度补充...原创 2018-12-25 14:45:15 · 515 阅读 · 0 评论 -
2 尾部的零
t = n//5k = t//5l = k//5。。。。n/=5python也是支持这种双符号运算的。少去很多循环–最简单的迭代 n /= 6n!=5 n != 5 不同,需要特别注意书写规范while n != 0 不能循环,只算一个判断条件循环靠的是 /=...原创 2018-12-25 14:44:30 · 142 阅读 · 0 评论 -
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 · 2553 阅读 · 0 评论 -
多线程爬
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 · 63 阅读 · 0 评论 -
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 · 237 阅读 · 0 评论 -
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 · 302 阅读 · 0 评论 -
class中的__init__方法作用
class需要初始化,需要init绑定属性。但是init的必要性其实是不知道的。今儿看到了个别人的解释:class rectangle():如果没有__init__()初始化,绑定它的长和宽,其实是不耽误使用的,这些都是class里面方法的工作。但是关于class本身,这样它本身是没有长宽这属性的,print(rectangle)得到的是{}空集合。这是不合面向对象思想的。所以说,class...原创 2018-12-21 14:14:54 · 2874 阅读 · 0 评论 -
简单爬虫实现1
1 使用python自带的urllib访问html网页2 BeautifulSoup处理数据 读取标签内容网页会有限制,得到的网页代码不全爬虫爬取数据可用模块…这样一来,工作量就集中在数据的处理上——筛选需要数据,去符号去语气词然后分词去停词再分析词频率…命令行打开程序,python 绝对路径\文件名cd位置是没有用哒1.爬数据import request from urllibd...原创 2018-12-25 14:40:23 · 487 阅读 · 0 评论 -
第一次leetcode刷题
lincode的测试不需要自己进行输入输出,可以直接编写函数等待测试#关于python的函数,self 还不懂类中定义函数,必须要有self作第一参数python的for循环不需要i为整数,可以直接循环变量迭代逻辑。。函数逻辑:def,return有if的情况下,可以分开多次returnif。。return, 其他默认为“else”的情况,再次return递归函数:a 特殊情况...原创 2018-12-25 14:41:58 · 139 阅读 · 0 评论 -
列表中最长元素
longest word 找出列表中最长元素找到具有某个特征值的元素最简单的查找是找到元素的某个特征,比如最大元素、最快速度、最漂亮的JC等。进阶的查找是找这个特征对应的元素一般实现的方法就是循环,“if ** = ***,return—”关于循环,有很简便的写法比如:max(len(i)for i in dicti)取集合dict中每个元素i的长度的最大值集合了“1循环取长度2取...原创 2018-12-25 14:42:34 · 3029 阅读 · 0 评论 -
记匹配问题的通用解法
以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 · 300 阅读 · 0 评论