![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
Yulinghu
每天都是新的开始哦!
展开
-
最长公共子串和子序列的Python实现,带图示。
使用矩阵来记录两个子串之间各个字符之间的对应关系。最长子串:矩阵中数字最大的就是最长子串的长度。若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1 1 def longSubStr(str1,str2): 2 len1 = len(str1) 3 len2 = len(str2) 4 longest,start1,start2 = 0原创 2017-08-18 09:28:32 · 278 阅读 · 0 评论 -
斐波那契数列的变形---跳台阶及矩形覆盖
题一:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 思路:很容易就能写出代码,n=0,1时,f(n) = f(n-1) + f(n-2).若使用递归调用,则算法的迭代层数较多,容易超时,可巧妙地使用使用数组,计算数列第n项。 法一:超时# -*- coding:utf-8 -*-class Solution: def Fibonacci(self, n原创 2017-08-22 11:58:45 · 359 阅读 · 0 评论 -
Python的zip函数妙用,旋转矩阵
Python的zip函数1.示例1:x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz运行的结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]从这个结果可以看出zip函数的基本运作方式。示例2:x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x,转载 2017-08-18 14:47:10 · 5860 阅读 · 1 评论 -
Python 除法负数取商的取整方式
python除法负数商的取整方式与C++不同 python:5 / -2 = -3若想和C++行为相同,可以使用 int(operator.truediv(num1, num2)) 返回 a/ b (当启用future.division 时. )这也被称为正除法python 几种常用的取整方式 1.向下取整 a = 3.75 int(a) 32.四舍五入 a = 3原创 2017-08-18 14:44:25 · 3618 阅读 · 0 评论 -
设有n个正整数,将他们连接成一排,组成一个最小的多位整数
Python的两种实现方式: 1.改方式使用了Python自带的函数permutations,排列组合,找出所有组合,然后在列表中找出最小的多位整数,该算法的时间复杂度较大,在牛客网上case的通过率只有20%。import itertoolsdef PrintMinNumber1(numbers): # write code here result = []原创 2017-08-18 11:44:49 · 2133 阅读 · 0 评论 -
丑数
问题:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:按顺序把每个丑数放在数组中,求下一个丑数 下一个丑数必定由有数组中的某一个丑数A * 2, B * 3, C * 5 的中的最小值得来。 分析:在数组中必定有一个丑数M2, 在它之前的数 * 2原创 2017-08-18 09:28:15 · 152 阅读 · 0 评论 -
调整队形
在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾。作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少。你只能在原队形上进行调整,每次调整只能让相邻的两个小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让原创 2017-08-18 09:28:18 · 231 阅读 · 0 评论 -
两个链表的第一个公共结点
问题:输入两个链表,找出他们的第一个公共结点思考:链表的公共结点意味着该结点的value值以及next相同,则两个链表有相同的后缀。 两种方式:1.分别遍历两个链表,计算长度,计算链表差值,长链表先走差值个,短链表开始走,比较两个链表的后缀。2.不计算长度,同时遍历两个链表,当链表中的结点为空时交换链表头指针,追赶,当有公共结点时跳出循环。这里给出方法2代码: 1 # -*- cod原创 2017-08-18 09:28:21 · 152 阅读 · 0 评论 -
二叉树的下一个节点
问题:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。题目给出的默认代码为: 1 # -*- coding:utf-8 -*- 2 # class TreeLinkNode: 3 # def __init__(self, x): 4 # self.val = x 5 #原创 2017-08-18 09:28:27 · 190 阅读 · 0 评论 -
对称二叉树
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路: 根节点以及其左右子树,左子树的左子树和右子树的右子树相同,左子树的右子树和右子树的左子树相同即可,采用递归. 1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(sel原创 2017-08-18 09:28:29 · 182 阅读 · 0 评论