![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
peppermint_xiao
这个作者很懒,什么都没留下…
展开
-
剑指offer-正则表达式匹配(python详细解读)
题目描述:请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。思考:在看到字符串比较的时候,我们分析的时候肯定是一个一个字符的去比较是否符合条件,因此,对于这个题目可以有以下几种情况:给定字符串s和匹配模式pattern均为空时,即一定匹配,函数返回T原创 2020-08-28 10:34:53 · 335 阅读 · 0 评论 -
剑指offer-滑动窗口的最大值(python)
题目描述:解答方法:这个题目一看就知道要用两个指针来做,在剑指offer里面竟然难度等级为较难,不是很理解,大概是以前被这种题虐的很惨,才会刻苦铭心吧。用python来写的话,代码量很小。需要注意的是要添加一个判断条件,即当size大于num的长度或者size等于0的时候,直接返回空数组就好了。废话不多说,直接上代码:# -*- coding:utf-8 -*-class Solution: def maxInWindows(self, num, size): # w原创 2020-08-13 21:13:08 · 166 阅读 · 0 评论 -
剑指offer-矩阵中的路径(python详细解读)
题目描述解题方法首先说下解决这个题目时需要注意的问题:1.给定的matrix,并不是矩阵形式,而是字符串形式。一开始我就在这里踩坑了,但其实看官方给定的函数(如下)就可以看出,matrix不是直接矩阵形式,如果是的话,就不用给rows和cols了,对吧。所以,如果要得到第i行,第j列的元素,应该是matrix [ i*cols + j ] (其中i表示rows的索引,j表示cols索引)2. 对于字符串‘bcccc’在例子矩阵matrix中其实并不存在。如果不做任何处理,程序会重复遍历相同元素’原创 2020-08-12 20:55:12 · 331 阅读 · 0 评论 -
剑指Offer-机器人的运动范围(两种详细解法,python)
题目描述:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题方法:这个题目可以有两种解法:(1)回溯法(2)规律法(自创的)我们首先来看回溯法~1.回溯法回溯法就是,我现在处于一个满足条件的格子,然后我原创 2020-08-09 09:34:38 · 360 阅读 · 2 评论 -
剑指Offer-对称的二叉树
题目描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解体思路:递归查询判断# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isSymmetri原创 2020-05-13 16:51:44 · 113 阅读 · 0 评论 -
剑指offer第56题
题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。中序遍历可以如下图所示:解体思路:分三种情况:该节点pNode有右子树,那么下个节点是其右子树最左边的节点该节点pNode没有右子树时又可以分为两种情况:(1)pNode其父节点右孩子时,返回的是其父节点的父节点。。。,直到其父节点的右孩子不再指向它(2)pNode是其父节点的左孩子时,直接返回其父python代码实现(有详解)# -*-原创 2020-05-13 16:22:48 · 171 阅读 · 0 评论 -
剑指Offer第48题
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、、/四则运算符号。*整体思路:先将两个整数num1+num2转换成二进制相加得sum,但是不进位;记录下进位carry;返回十进制sum+carry的值。举例:num1 = 5, num2 =17,第一步:sum= 101+10001=10100第二步:carry = 10 (即最后一位两个数都是1,二进制相加为...原创 2020-04-11 14:30:45 · 125 阅读 · 0 评论