
python练习
_气呀呀呀
活在自己的世界里!
展开
-
python 斐波那契数列
斐波那契数列实现方法1:迭代器# -*- coding: utf-8 -*-class Fibs: def __init__(self): self.a=0 self.b=1 def next(self): self.a,self.b=self.b,self.a+self.b return self.a def _原创 2017-10-30 20:25:17 · 571 阅读 · 2 评论 -
python 合并两个排序的链表
剑指offer第25题:输入两个递增的链表,合并他们,并且输出的链表也是递增的# _*_ encoding:utf-8 _*_class ListNode: def __init__(self): self.value = None self.next_node = Noneclass Solution: def list_generate(self原创 2018-01-11 15:19:05 · 714 阅读 · 0 评论 -
python 字符串的排列
剑指offer第38题:字符串的排列题目:输入一个字符串,打印出字符串的所有排列 基本思路:这个问题就是一个排列组合问题,使用python生成器可以很好的解决这个问题,将字符串进行迭代,每次迭代将一个字符加入到新的字符串当中,并且将这个字符的序列记录到元组state中,这个元组可以用来判断之前是否添加过某个字符! 拓展:八皇后问题也是这样的原理!# 献上代码# _*_ encoding:utf原创 2018-01-24 01:12:48 · 675 阅读 · 0 评论 -
python 包含min函数的栈
剑指offer第30题:包含min函数的栈题目:定义栈的数据结构,实现一个能够获得最小值的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。 这题如果用python的min函数,解决十分轻松,但可能不符合它的时间复杂度,我们自己实现栈,并完成min函数。# _*_encoding:utf-8 _*_class Stack: """ 用列表表示栈,符合先进原创 2018-01-24 11:59:00 · 890 阅读 · 0 评论 -
python 表示数值的字符串
剑指offer第20题:表示数值的字符串实现一个函数用来判断字符串是否表示数值,如:’+100’、’5e2’表示数值,而’12e’、’1.2.3’不是# _*_ encoding:utf-8 _*_import reclass Solution: def is_num(self, string): """ 判断string是否数字的字符串 ""原创 2018-01-08 12:50:53 · 871 阅读 · 2 评论 -
python 奇数位于偶数前面
剑指offer第21题:将奇数位于偶数前面输入一个列表,调整顺序为所有奇数位于偶数前面# _*_encoding:utf-8 _*_class Solution: def reorder(self, lst): """ 把奇数放在偶数前面 """ length = len(lst) if not length:原创 2018-01-08 13:05:14 · 1951 阅读 · 0 评论 -
python 栈的压入、弹出序列
剑指offer第31题:栈的压入、弹出序列题目:输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为栈的弹出序列。# _*_encoding:utf-8 _*_class Solution: def is_stack_push_list(self, list1, list2): length1 = len(list1) length2 = len原创 2018-01-25 13:00:29 · 1827 阅读 · 0 评论 -
python 连续子数组的最大和
剑指offer第42题:连续子数组的最大和题目:输入一个整形数组,数组里有正数也有负数,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。# _*_ encoding:utf-8 _*_class Solution: def find_greatest_sub_array(self, array): """ sum_原创 2018-01-29 23:08:13 · 2784 阅读 · 0 评论 -
python 各类排序方法
# _*_ encoding:utf-8 *_*class Solution: def insertsort(self, num_list): """ 插入排序 """ length = len(num_list) for i in range(1, length): tmp = num_li原创 2018-01-30 14:13:22 · 319 阅读 · 0 评论 -
python 单个数字问题
python 单个数字问题==>给定一个数组,每个数字会出现两次,尤其只有一个是单次的。 要求:时间复杂度O(n)方法一:进行异或操作,相同的数异或为0;空间复杂度为O(1)class Solution(object): def singleNumber(self, nums): """ :type nums: List[int]...原创 2017-11-02 10:54:56 · 331 阅读 · 0 评论 -
python 反向输出字符串
python 反向输出字符串方法一:采用列表reversed函数class Solution(object): def reverse_string(self, s): if len(s) > 1: reversed_s = ''.join(reversed(s)) return reversed_s ...原创 2017-11-03 14:57:07 · 9448 阅读 · 0 评论 -
python 最大公约数与最小公倍数
1.最大公约数:#使用辗转相除法求最大公约数def gcd(a,b): # a作为除数 必须大于b a, b = (a, b) if a >=b else (b, a) while b: a,b = b,a%b return a#等价于:def gcd(a,b): a, b = (a, b) if a >=b e...原创 2017-11-03 15:45:51 · 11280 阅读 · 6 评论 -
python 链表中倒数第n个节点 & 翻转链表
剑指offer第22题:输入一个链表,输出链表中倒数第k个节点剑指offer第24题:输入一个链表,翻转它# _*_ encoding:utf-8 _*_class ListNode: def __init__(self): self.value = None self.next_node = Noneclass Solutio原创 2018-01-11 12:07:09 · 447 阅读 · 0 评论 -
python 删除链表的节点
剑指offer第18题:题目一:在O(1)时间内删除链表节点(给点头节点与删除节点)题目二:删除连续重复节点# _*_coding:utf-8 _*_class ListNode: def __init__(self): self.value = None self.next_node = Noneclass Solution原创 2018-01-05 00:35:47 · 3889 阅读 · 0 评论 -
python 获取字符串中出现次数最多的字母
获取字符串中出现次数最多的字母给定一个包含不同的英文字母和标点符号的文本,找出其中出现最多的字母,不区分大小写,并返回一个小写字母,若存在相同次数的字母,则返回字母表中最先出现的那个。采用内置函数maximport stringclass Solution: def getMostWord(self,wordstr): #将字符串小写化 wordstr =原创 2017-11-06 14:20:08 · 16691 阅读 · 0 评论 -
python 单链表逆置
python 单链表逆置def reverseNode(node): p = node cur = node.next while cur: tmp = cur.next cur.next = p p = cur cur = tmp空间复杂度O(1),时间复杂度O(n)原创 2017-11-08 08:57:34 · 1691 阅读 · 0 评论 -
python 判断闰年
python 判断闰年先看看原理:def isLeapYear(year): if not year%4 and year%100 or not year%400: return True return False原创 2017-11-08 09:42:06 · 3995 阅读 · 0 评论 -
python 八皇后问题
python 八皇后问题:from random import choicedef queen(num=8,state=()): for pos in range(num):###遍历一行中的每个位置(即x) if not conflict(state,pos): if len(state)==num-1:###最后一行原创 2017-10-30 19:42:49 · 596 阅读 · 1 评论 -
python 二维数组的查找
python 二维数组的查找# -*- coding: utf-8 -*-class ArrayHandle: def search(self,array,target): ####array为二维数组 for index in range(len(array)): if target in array[index]:原创 2017-10-30 20:46:43 · 3788 阅读 · 0 评论 -
python 空格替换
python 空格替换方法一:#-*-coding:utf-8-*-class Handle(): def replaceSpace(self,string): if string == None:return None if len(string) == 0:return 0 return string.replace(' ','*')原创 2017-10-31 12:11:19 · 4039 阅读 · 1 评论 -
python FizzBuzz问题
python FizzBuzz问题1.当n为3的倍数,输出Fizz2.当n为5的倍数,输出Buzz3.当n为15的倍数,输出FizzBuzz其他时候输出相应数字的字符串,如1==>"1"方法一:最笨的方法;时间与空间复杂度都为O(n)class Solution(object): def fizzBuzz(self, n): """ :type n:原创 2017-11-02 11:03:22 · 2804 阅读 · 1 评论 -
python 两个栈实现链表
两个栈实现链表#-*- coding:utf-8 -*-class StackForList(): def __init__(self): #先把node存进stack1中,而输出时从stack2中出去 self.stack1 = [] self.stack2 = [] def push(self,node): self.sta原创 2017-11-01 08:50:48 · 455 阅读 · 0 评论 -
python 求两个数列的交集、并集与差集
求两个数列的交集、并集与差集def set_handlers(list1, list2): res1 = [] # 交集 res2 = list(set(list1+list2)) #并集 res3 = [] # 差集 for i in list2: if i in list1: res1.append(i) #list1、2原创 2017-11-15 09:07:40 · 2801 阅读 · 0 评论 -
python 二进制中的1的问题
要求:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution: def getOneCount(self, n): # write code here count=0; for i in range(32):#int占4个字节 if n&1:#进行与操作原创 2017-11-03 14:45:43 · 486 阅读 · 0 评论 -
python 列表的中位数
找出列表的中位数class Solution: def medianFind(self,lst): #先将列表进行排序 lst.sort() half = len(lst)//2 #得到中间序列,~half为负索引,列表元素可能为偶数,需要获取中间两个数 #转化成float,中位数可能为浮点数类型,如测试用例原创 2017-11-06 14:05:35 · 8313 阅读 · 0 评论 -
python 重建二叉树与二叉树下一个节点
本程序包括2个部分:1,剑指offer第7题:重建二叉树给定一个前序与中序遍历序列,重新构建二叉树,并且输出它根节点2,剑指offer第8题:二叉树的下一个节点给定一个树所有节点的父节点,左右节点,找出指定节点的在中序遍历序列中的下一个节点# _*_encoding:utf-8 _*_class TreeNode:"""建立二叉树节点的属性""" def __init__(self,原创 2017-12-06 21:41:10 · 473 阅读 · 0 评论 -
python 两个数列和的最小差值
两个数列和的最小差值题目: 有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使a的和与b的和之间的差最小。def get_MinDvalue(a,b): # combinations是一个生成器(迭代器),每次从a+b中取出n个数返回一个列表,并且会列举出所有种情况 # 这个列表的和与sum(a+b)/2差值的绝对值的最小...原创 2017-11-07 12:33:34 · 4345 阅读 · 1 评论