python学习
Sinde1992
小女子一枚,我在等风来。
展开
-
python学习1 详细记录python的range()函数用法
>>> range(1,5) #代表从1到5(不包含5)[1, 2, 3, 4]>>> range(1,5,2) #代表从1到5,间隔2(不包含5)[1, 3]>>> range(5) #代表从0到5(不包含5)[0, 1, 2, 3, 4]原创 2017-04-14 20:19:35 · 771 阅读 · 0 评论 -
offer45--约瑟夫环
# coding=utf-8def lastdelete(n,m): if n1 and m1: return -1 index=0 for i in range(1,n+1): index=(index+m)%i#f[i] = (f[i-1] + m) % i 约瑟环 return indexif __name__ == '原创 2017-09-26 17:28:12 · 274 阅读 · 0 评论 -
offer46--实现加法
# coding=utf-8# 不用加减乘除实现两数相加def add(num1,num2): while num2: sum=num1^num2#异或 carry=(num1&num2)1#位与再右移得到进位 num1=sum num2=carry return num1print(add(2,4))原创 2017-09-26 19:53:08 · 284 阅读 · 0 评论 -
二分查找有序序列
# coding=utf-8def findnumber(lists,num): i=0 j=len(lists)-1 mid=int(len(lists)/2) if lists[mid]>num: j=mid-1 findnumber(lists[:mid-1],num) elif list[mid]<num:原创 2017-09-28 17:24:31 · 1152 阅读 · 0 评论 -
栈+队列--python
队列--对头删除,对尾插入http://blog.csdn.net/u010786109/article/details/40649827原创 2017-09-18 19:23:49 · 436 阅读 · 0 评论 -
排序
插入排序包括直接插入排序和希尔排序选择排序包括直接选择排序和推排序交叉排序包括冒泡排序和快排本文用python实现了插入、希尔、直接选择、堆、冒泡、归并、基排序http://python.jobbole.com/82270/# coding=utf-8# 插入排序,插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部原创 2017-09-05 16:30:20 · 302 阅读 · 0 评论 -
offer17--合并两个有序链表
# coding=utf-8class Listcode: def __init__(self,x): self.val=x self.next=Noneclass Solution: def Merge(self,head1,head2): if head1==None: return head2原创 2017-10-05 10:49:44 · 323 阅读 · 0 评论 -
python学习
https://github.com/pythonpeixun/article/blob/master/python_shiping.md原创 2017-10-30 16:24:03 · 423 阅读 · 0 评论 -
全排列
# coding=utf-8import itertoolsfor i in itertools.permutations('abcd',4): print (''.join(i))'''def perm(l): if(len(l)<=1): return [l] r=[] for i in range(len(l)): s原创 2017-10-30 17:48:07 · 472 阅读 · 0 评论 -
offer412--序列和为s
# coding=utf-8def searchs(array, k): if array is None: return 0 begin, end = 0, 0 s = array[0] while begin len(array) and end len(array) and begin <= end: #s = 0原创 2017-10-22 22:19:57 · 377 阅读 · 0 评论 -
offer411--两个数字之和为s
# coding=utf-8def counts(array, s): if array is None: return 0 i = 0 j = len(array) - 1 while i < j: if array[i] + array[j] > s: j -= 1 elif array[原创 2017-10-22 22:21:51 · 381 阅读 · 0 评论 -
链表
参考http://www.cnblogs.com/Freec/p/7230063.html# coding=utf-8class Node(object): def __init__(self,item): self.item=item self.next=Noneclass Singlelinkist(object):原创 2017-09-18 17:49:34 · 405 阅读 · 0 评论 -
offer-35在一个字符串中找到第一个只出现一次的字符
# coding=utf-8'''在一个字符串中找到第一个只出现一次的字符,建立hash表'''def firstfind(s): if s==None or len(s)0: return -1 alphabet={} #建立一个空字典,字母是key,出现的次数是value alist=list(s)#将字符串转成list,放到列表中遍历原创 2017-10-17 14:28:57 · 244 阅读 · 0 评论 -
offer44--扑克牌的顺子
# coding=utf-8def continus(number): if number==None or len(number)0: return 0 trans={'A':1,'J':11,'Q':12,'k':13} for i in range(len(number)):#转换 if number[i] in trans.keys原创 2017-09-26 17:05:11 · 296 阅读 · 0 评论 -
offer42--左旋转n个字符
# coding=utf-8#左旋转就是分成两部分,完成3次反转即可def leftrotate(s,n): if len(s)0 or len(s)or n0: return '' strlist=list(s) strlist=reverse(strlist) length=len(s) p=length-n frontlis原创 2017-09-26 14:04:34 · 277 阅读 · 0 评论 -
offer40--和为s的连续正数序列
# coding=utf-8'''输入一个递增排序的数组和一个数字s,在数组中查找两个数,使他们的和正好时s思路:两个指针分别指向头尾,第一个和最后一个数字相加和s判断大小,大的尾指针渐渐'''def Findsum(arry,s): if arry==None or len(arry)0 or arry[-1]+arry[-2]<s: return []原创 2017-09-26 11:47:31 · 279 阅读 · 0 评论 -
linux下数据库使用
1.打开终端输入 service mariadb start,启动服务器2.mysql -u root -p enter 键 连接mysql3.操作数据库show databases;show tables;CREATE TABLE user(name VARCHAR(20),passward VARCHAR(20)); 创建user表insert into us原创 2017-08-20 17:02:56 · 315 阅读 · 0 评论 -
python 爬虫
#coding=utf-8import urllibimport redef getHtml(url): page = urllib.urlopen(url) html = page.read() return htmldef getImg(html): reg = r'src="(.+?\.png)"' imgre = re.compile(r原创 2017-08-20 22:54:52 · 216 阅读 · 0 评论 -
树--python
# coding=utf-8class node(object): def __init__(self,data=None,left=None,right=None): self.data=data self.left=left self.right=right #深度def depth(tree): i原创 2017-09-05 14:52:13 · 405 阅读 · 0 评论 -
offer4
# coding=utf-8def replaces1(s): ss=''#定义一个空字符串 if type(s)!=str: return for i in s: if i==' ':#i是否等于空格 ss+='%20' else: ss+=原创 2017-09-23 16:25:02 · 234 阅读 · 0 评论 -
offer33.打印能拼接出的所有数字中最小的一个
# coding=utf-8#输入一个正整数数组,把数组里所有数字拼起来排成一个数,# offer33.打印能拼接出的所有数字中最小的一个#思路:先把数组转成字符串,然后冒泡排序def minNum(arry): if arry==None or len(arry)0: return '' strNum=[str(m) for m in arry]原创 2017-09-24 12:01:55 · 344 阅读 · 0 评论 -
offer29--数组中出现次数超过一半的数字
#coding=utf-8'''offer29--最开始保存两个数值:数组中的一个数字以及它出现的次数,然后遍历,如果下一个数字等于这个数字,那么次数加一,如果不等,次数减一,当次数等于0的时候,在下一个数字的时候重新复制新的数字以及出现的次数置为1,直到进行到最后,然后再验证最后留下的数字是否出现次数超过一半,因为可能前面的次数依次抵消掉,最后一个数字就直接是保留下来的数字,但是出现次数不一原创 2017-09-24 12:02:40 · 200 阅读 · 0 评论 -
offer30--最小的k个数
# coding=utf-8# O(nlogk)的算法, 适合海量数据# 利用一个k容量的容器存放数组, 构造最大堆, 当下一个数据大于最大数, 跳过,# 小于最大数, 则进入容器替换之前的最大数from offer import build, adjustdef getk(data, k): if data is None or len(data) or k 0:原创 2017-09-24 12:05:18 · 243 阅读 · 0 评论 -
offer31--连续子数组的最大和
# coding=utf-8#连续子数组的最大和def Findgreat(arry): if arry==None or len(arry)0: return 0 msum=0 nsum=arry[0] for i in range(len(arry)): if msum0: msum=arry[i]原创 2017-09-24 12:08:16 · 253 阅读 · 0 评论 -
offer34--丑数
# coding=utf-8#打印第N个丑数def getugly(index): if index0: return 0 uglyNumber=[1]*index nextindex=1 index2=0 index3=0 index5=0 while nextindex<index: minval=mi原创 2017-09-24 15:26:16 · 309 阅读 · 0 评论 -
offer35--第一个只出现一次的字符
# coding=utf-8def firstnum(s): if s==None or len(s)==0: return -1 alphapet={}#定义一个空字典 alist=list(s)#将字符串放到列表里 for item in alist: if item not in alphapet.keys():原创 2017-09-24 15:56:40 · 282 阅读 · 0 评论 -
offer37--两个链表的公共节点
# coding=utf-8class ListNode(): def __init__(self, x): # 定义链表节点 self.val = x self.next = Nonedef findcommon(p1, p2): n1 = Getlength(p1) n2 = Getlength(p2) n3 = abs(n原创 2017-09-24 18:32:20 · 281 阅读 · 0 评论 -
offer38-找数字在有序数组中出现的次数
# coding=utf-8def GetnumK(data,k): number=0 length=len(data) if data==None and length>0: first=Getfirstk(data,length,k,0,length-1) last=Getlastk(data,length,0,length-1)原创 2017-09-25 17:24:01 · 319 阅读 · 0 评论 -
offer-37两个链表是否相交,找第一个公共节点
# coding=utf-8'''两个链表是否相交,找第一个公共节点,必知两个链表相交则尾部一定相等,所以长链表先走两个链表长度之差的长度,然后两个指针再一起走'''class ListNode(): def __init__(self,x): self.val=x self.next=Nonedef findcommon(p1,p2):原创 2017-10-17 15:51:27 · 305 阅读 · 0 评论