技术文章库 - 编程教程与技术分享平台


使用 Python 中的填充操作填充颜色的程序

假设我们有一个2D网格,其中包含字符串"r"、"g"和"b"的颜色。我们必须使用颜色目标在行r、列c处执行填充操作。我们知道,Floodfill操作应该用与target相同的颜色替换所有与grid[r,c]相连(上/右/下/左)且与grid[r,c]具有相同颜色的元素。因此,如果输入如下RRRRGBGBB则输出将是GGGGGBGBB因为连接到grid[0,0]的红色单元

Python 中将相同连续元素打包到子列表中的程序

假设我们有一个数字列表nums,我们将把相同值的连续元素打包到子列表中。我们必须记住,列表中只有一个出现,它仍然应该在它自己的子列表中。因此,如果输入为nums=[5,5,2,7,7,7,2,2,2,2],则输出将是[[5,5],[2],[7,7,7],[2,2,2,2]]为了解决这个问题,我们将遵循以下步骤−如果nums为空,则返回

用 Python 编写程序,查找一个最小可能间隔以插入间隔列表

假设我们有一个2D数字列表,称为间隔,其中每行代表[开始,结束](含)间隔。对于间隔[a,b](a<b),其大小为(b-a)。我们必须将一个间隔添加到给定列表中,以便在合并所有间隔后,我们只剩下一个范围。我们必须找到添加间隔的最小可能大小。因此,如果输入为intervals=[[15,20],[30,50]],则输出将为10,因为我们可以添加间隔[20,3

用 Python 编写程序,查找将列表缩减为一个整数的最低成本

假设我们有一个名为nums的数字列表。我们可以通过取任意两个数字、删除它们并在末尾附加它们的和来减少nums的长度。执行此操作的成本是我们删除的两个整数的总和。我们必须找到将nums缩减为一个整数的最小总成本。因此,如果输入为nums=[2,3,4,5,6],则输出将为45,因为我们取2和3然后移除以获得[4,5,6,5],然后我们取4和5然后移

用 Python 检查两个字符串的编辑距离是 0 还是 1

假设我们有两个字符串S和T,我们必须检查它们是否是1还是0编辑距离。编辑操作可以定义为删除一个字符、添加一个字符或用另一个字符替换一个字符。因此,如果输入为S="hello",T="hallo",则输出将为True,因为这两个字符串的编辑距离为1。为了解决这个问题,我们将遵循以下步骤−m:=S的大小,n:=

用 Python 编写程序,查找除当前索引外所有元素的乘积列表

假设我们有一个名为nums的数字列表,我们必须找到一个新列表,使得新生成的列表中索引i处的每个元素都是原始列表中除索引i处的所有数字的乘积。这里我们必须在不使用除法的情况下解决它。因此,如果输入为nums=[2,3,4,5,6],则输出将为[360,240,180,144,120]为了解决这个问题,我们将遵循以下步骤−ifsizeofnums

用 Python 检查所有回文子串的长度是否为奇数的程序

假设我们有一个字符串s,我们必须检查其所有回文子串的长度是否为奇数。因此,如果输入为s="level",则输出将为True要解决这个问题,我们将遵循以下步骤−对于范围从1到s的大小的i,执行如果s[i]与s[i-1]相同,则返回False返回True让我们看看下面的实现以便更好地理解−示例classSolutio

用 Python 编写程序来计算回文子串的数量

假设我们有一个字符串s,我们必须找出s中回文子串的数量。因此,如果输入为s="level",则输出将为7,因为回文子串为:["l","e","v","e","l","eve","level"]为了解决这个问题,我们将遵循以下步

用 Python 编写程序来计算给定矩阵中的岛屿数量

假设我们有一个二进制矩阵,我们必须找出矩阵中的岛屿数量。这里1表示陆地,0表示水,所以岛屿是一组相邻的1,其周边被水包围。这里我们认为邻居只能是水平或垂直的,而不是对角线的。所以,如果输入如下1010000100100011000000110111111101则输出为4。为了解决这个问题,我们将遵循以下步骤−定义一个函数explore()。这将获取行、列、矩阵如果行和

用 Python 编写程序,查找到达终点所需的最小跳数

假设我们有一个数组nums,其中所有元素都是正数。我们位于索引0。这里,数组中的每个元素代表我们在该位置的最大跳跃长度。我们的目标是以较少的跳跃次数到达最终索引(n-1,其中n是nums的大小)。因此,如果数组为[2,3,1,1,4],则输出将为2,因为我们可以从0跳转到索引1,然后跳转到索引4,即最后一个索引。为了解决这个问题,我们将遵循以下步骤−end:

用 Python 编写程序,查找只有一个解的线性方程的系数

假设我们有一个值n,我们必须找到(a,b)[a<b]的数量,这些对的存在使得方程a*x+b*y=n至少有一个解。因此,如果输入为n=4,则输出将为2,因为有效对为(1,2)和(1,3)。为了解决这个问题,我们将遵循以下步骤−定义一个函数divisors_gen()。这将需要ndivs:=大小为n+1的列表列表。并且每个内

用 Python 编写程序,查找末尾有 n 个 0 的数字 m

假设我们有一个数字n。我们必须找到最小的数字m,使得m的阶乘至少有n个0。因此,如果输入为n=2,则输出将为10,因为10!=3628800和9!=362880,有2个零的最小数字是10。为了解决这个问题,我们将遵循以下步骤−定义一个函数count_fives()。这将需要ncnt:=0whilen>0,执行n:=f

用 Python 编写程序,在分配糖果时遵循规则,找出有多少孩子会得到糖果

假设我们有k个糖果。我们必须将它们分配给孩子们。现在有一些规则第i个孩子将得到i^2个糖果索引i处的任何孩子都不会得到任何糖果,直到索引1到i-i的所有孩子都得到糖果为止如果第i个孩子没有得到i^2个糖果,那么这不是有效的服务。因此,如果输入是k=20,则输出将是3,因为第一个孩子将得到1,第二个孩子将得到2^2=4,第三个孩子将得到3^2=9

用 Python 编写程序,求出将 n 个 1 除以 m 后的余数

假设我们有两个数字n和m。我们必须求出将n个1除以m后的余数。因此,如果输入为n=4m=27,则输出将为4,因为1111mod27=4。为了解决这个问题,我们将遵循以下步骤−定义一个函数util()。这将需要x、n、my:=1whilen>0,执行如果n为奇数,则y:=(y*x)modmx:=(x*

用 Python 编写程序,从 N 个自然数中找出总和能被 k 整除的对数

假设我们有一个数字n和另一个值k,假设我们有一个包含前N个自然数的数组A,我们必须从A中找出元素A[i]和A[j]的对数总数,使得i<j并且它们的和可以被k整除。因此,如果输入为n=10k=4,则输出将为10,因为有10对的和可以被4整除。[(1,3),(1,7),(2,6),(2,10),(3,5),(3,9),(4,8

使用给定的约束在 Python 中查找最小值和最大值之间的共同分数的程序

假设我们有两个长整数值,最大值和最小值。我们必须找到一个共同分数n/d,使得最小值<=d<=最大值。并且|n/d-pi|最小。这里pi=3.14159265...如果有多个分数满足此条件,则返回分母最小的分数。因此,如果输入为最小值=1最大值=10,则输出为22/7。为了解决这个问题,我们将遵循以下步骤−P:=分数(570667

用 Python 编写程序,计算 n 的任何真因子为偶数完全平方数的概率

假设我们有一个数n,我们必须计算n的任何真因子为偶数完全平方数的概率。因此,如果输入为n=36,则输出为1/8,因为36有八个真因子,分别是{1,2,3,4,6,9,12,18},其中只有一个数(4)是完全平方数且为偶数。要解决这个问题,我们将遵循以下步骤−如果nmod4不等于0,则返回0否则,nc:=n,ptr:=2l:=anewl

用 Python 编写程序来查找 find(x, y) 的值是奇数还是偶数

假设我们有一个数组nums。我们还有另一对(x,y),我们需要查找find(x,y)的值是奇数还是偶数。find()如下所示如果x>,则find(x,y)=1yfind(x,y)=nums[x]^find(x+1,y)否则因此,如果输入为nums=[3,2,7](x,y)=1,2,则输出为偶数,因为−find(1,2)=

用 Python 编写程序检查每个人是否至少有一个朋友

假设我们有n个人,用0到n-1的数字表示,我们还有一个朋友元组列表,其中friends[i][0]和friends[i][1]是朋友。我们必须检查每个人是否至少有一个朋友。因此,如果输入为n=3friends=[[0,1],[1,2]],则输出将为True,因为Person0是Person1的朋友,Person1是Person0

用 Python 编写程序来查找二叉树中出现频率最高的子树和

假设我们有一棵二叉树,我们必须找到出现频率最高的子树和。节点的子树和实际上是节点下所有值的总和,包括节点本身。因此,如果输入如下那么输出将是3,因为它出现了两次−一次作为左叶,一次作为3-6+6的总和。为了解决这个问题,我们将遵循以下步骤−count:=一个空映射定义一个函数getSum()。这将获取节点如果节点为空,则返回0mySum:=g