刷题记录
记录自己做的题目(编程题为主)
说话声音扁扁的
这个作者很懒,什么都没留下…
展开
-
Python剑指offer 06 剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]解题思路:1、定义一个空列表,判断头是否为空,不为空则存入,为空则直接返回[]2、然后将head后的第一个结点赋值给a,判断是否存在,存在则存入列表,并继续next提交结果如下代码:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):#原创 2021-04-14 20:48:49 · 174 阅读 · 0 评论 -
Python剑指offer 05 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”两种方法:1、使用replace函数直接处理m= s.replace(' ','%20')return m2、使用列表将原列表的元素再重写誊抄一遍进去 ls=[] for i in s: if i ==' ': ls.append('%20')原创 2021-04-14 19:56:41 · 117 阅读 · 0 评论 -
Python 剑指offer 03 数组中重复的数字
03 找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3超时答案:本来使用了count函数来统计,大于等于2,则存入一个新的列表,然后set后list,取出其中的第一个元素,但是提交之后超时了。在题解中看到了直接使用集合处理的方法首先定义一个空集合,然后遍历数组原创 2021-04-14 19:43:50 · 73 阅读 · 0 评论 -
Python:PAT-1002 A+B for Polynomials(多项式A+B)
This time, you are supposed to find A+B where A and B are two polynomials.Sample Input:2 1 2.4 0 3.22 2 1.5 1 0.5Sample Output:3 2 1.5 1 2.9 0 3.2题干的意思:求两个多项式的和,需要注意的是,输出时要按照输入的格式,指数从高到低的顺序输出,并且与题干一样保留一位小数题解是一位大神写的,自己的想法很冗杂,看完大神的写法,醍醐灌顶,感慨脑子是个好东西!原创 2020-12-04 09:44:11 · 242 阅读 · 0 评论 -
Python-蓝桥杯模拟题:螺旋矩阵
矩阵效果如下:代码:n, m = map(int, input().split())r, c = map(int, input().split())anslist = [[0 for _ in range(m)] for _ in range(n)] #填充数字vis = [[0 for _ in range(m)] for _ in range(n)] #标记走过的位置i=1x=0y=0while i <n*m: while y<m and vis[x][.原创 2020-10-14 09:53:02 · 391 阅读 · 1 评论 -
Python-迷宫题(非BFS)
在下图的迷宫中,找到一条解题路径。0可以走,1不可以走。maze=[ [1,1,1,1,1,1,1,1,1,1], [1,0,1,1,0,0,0,1,1,1], [1,0,1,1,1,1,0,0,1,1], [1,0,1,0,0,0,0,0,1,1], [1,0,1,0,1,1,1,1,1,1], [1,0,0,0,1,1,1,1,1,1], [1,1,1,0,0,0,0,1,1,1], [1,1,1,0,0,1,0,1,1,1],原创 2020-10-12 15:59:36 · 178 阅读 · 0 评论 -
Python-动态规划之蒜头君爬楼梯2
蒜头君很喜欢爬楼梯,这一次,他获得了一个特异功能,每次可以跳跃任意奇数的阶梯。比如他初始在楼底,跨越一个阶梯到达 11 号阶梯,或者跨越 33 个楼梯到达 33 号阶梯。为了选出一种最轻松的爬楼梯的方式,蒜头君想把所有不同的到达楼顶的方式都尝试一遍。对于一共有 nn 个阶梯的楼梯,蒜头君一共有多少总方法从楼底到达楼顶。由于最后答案可能很大,输出最后的答案对 100007100007 取模的结果。输入格式第一行输入一个整数 n(1 \le n \le 1000)n(1≤n≤1000)。输出格式输出原创 2020-10-11 21:13:40 · 514 阅读 · 0 评论 -
Python动态规划之爬楼梯
假设每次只能爬1级或2级台阶,如果要爬到n级台阶,那有多少种爬法?解题思路:假设需要爬到第5级台阶,那这个问题可以分解为4+1 或者 3+2 (即从第4级台阶,走一步上升到第5级;或者从第3级台阶,走两步上升到第5级)。因此,第五级台阶的解法数量就转化为了第四级的解法数量加上第三级的解法数量。这样可以看出,这个问题等同于斐波那契数列。dp[i]=dp[i-1]+dp[i-2]解题代码如下:n=int(input())dp=[1 for i in range(n+1)] #记录每一层阶梯的可原创 2020-10-11 18:05:17 · 1121 阅读 · 0 评论 -
Python动态规划之凑零钱
设有1,2,5三种面值的零钱,凑齐11元,最少需要几枚硬币使用动态规划来解决这个问题。一、递归法#凑零钱def coinChange(coins,amount): def dp(n): if n==0: #base case return 0 if n<0: return -1 res=float('inf') #由于获取的值为最少需要几枚硬币,所以初始化为无穷大 f原创 2020-10-11 17:24:52 · 1332 阅读 · 0 评论 -
Python 动态规划之斐波那契数列(自用)
0 1 1 2 3 5 8…#斐波那契n=int(input())memo=[0 for i in range(n)] #用来存储上一步的结果for i in range(n): if i<2: f=i else: f=memo[i-1]+memo[i-2] memo[i]=fprint(memo)原创 2020-10-11 15:12:10 · 238 阅读 · 0 评论 -
Python-蓝桥杯:等差数列
1、先将输入的等差数列的数字存入数组中,并对其进行排序2、计算邻近数值的差,并记录最小的差值,为等差数列的差3、用最大的项除以最小的项,然后加1,就是一共有多少项n=int(input())ls=list(map(int,input().split()))ls.sort()ran=100000for i in range(1,len(ls)): rang=int(ls[i]-ls[i-1]) if rang<ran: ran=rangcount=in..原创 2020-10-09 15:39:51 · 490 阅读 · 1 评论 -
Python-蓝桥杯:完全二叉树的权值
深度为K的完全二叉树,有2**n-1个节点所以可以使用Python自带的math.log() 函数来求以2为底的二叉树的深度。m为n个节点所对应的二叉树的深度。m=(int(math.log(n+1,2)))import mathn=int(input())ls=list(map(int,input().split()))m=(int(math.log(n+1,2)))result=0deep=0for i in range(m): res=sum(ls[2**i-1:2*..原创 2020-10-09 14:54:14 · 639 阅读 · 1 评论 -
Python:全排列(自用)
给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1n=int(input())path=[0 for i in range(n+1)] #路径数组st=[False for i in range(n+1)] #创建一个数组,判断这个原创 2020-10-08 15:19:34 · 609 阅读 · 0 评论 -
Python-蓝桥杯省赛真题(填空):数列求值
【问题描述】给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。ls=[]for i in range(3): ls.append(1)for i in range(3,20190325): ls.append((l原创 2020-10-08 09:00:40 · 1322 阅读 · 0 评论 -
Python-蓝桥杯省赛真题:不同子串
题目描述:一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。 注意在计算时,只算本质不同的串的个数。请问,字符串0100110001010001 有多少个不同的非空子串?ls='0100110001010001'#ls='aaab'length=len(ls)l=[]for i in range(length): for j in range(1,lengt原创 2020-10-08 08:21:19 · 917 阅读 · 0 评论 -
python-蓝桥杯:FJ字符串
问题描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?输入格式 仅有一个数:N ≤ 26。输出格式 请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。样例输入3样例输出ABACABAn=int(input())str=''for i in range(n): st原创 2020-10-07 21:21:02 · 137 阅读 · 0 评论 -
Python-蓝桥杯:芯片测试
问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。 每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。 给出所有芯片的测试结果,问哪些芯片是好芯片。输入格式 输入数据第一行为一个整数n,表示芯片个数。 第二行到第n+1行为n*n的一张表,每行n个数据。表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯原创 2020-10-07 21:07:43 · 387 阅读 · 0 评论 -
Python-蓝桥杯:回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67 8 9样例输出1 4 7 8 9 6 3 2 5样例输入3 21 23 45 6样例输出1原创 2020-10-07 10:00:10 · 657 阅读 · 2 评论 -
Python-刷题日记:杨辉三角
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:11 11 2 11 3 3 1给出n,输出它的前n行。解题思路:杨辉三角的特点是第i行的两个数据和是第i+1行对应位置的数值,所以可以借助这个特点来解决,根据已知的最后一行,求下一行的数据。三角形的前两行是固定的[1],[1,1]。所以将它们直接存储到一个列表中。a=[[1],[1,1]] #使用a列表来存储前原创 2020-09-17 17:25:59 · 211 阅读 · 0 评论 -
Python-一维数组的动态和
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4]方法一、这个方法新定义了一个列表来存储计算结果class Solution: def runningSum(self, nums: List[int]) -> List[int]:原创 2020-09-01 14:51:36 · 1491 阅读 · 0 评论 -
Python-两数之和(多种方法)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题代码:class Solution: def twoSum(self, nums: List[int], target: in原创 2020-08-30 17:25:31 · 4365 阅读 · 0 评论 -
Python-反转字符串中的单词三
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:“Let’s take LeetCode contest”输出:“s’teL ekat edoCteeL tsetnoc”提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii解题代码:class Solution原创 2020-08-30 15:30:18 · 277 阅读 · 0 评论 -
Python-小乐乐与欧几里得
输入描述:每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)输出描述:对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。提交了两段代码都提示运行超时(限时2s),应该是判断最大公约数部分的循环太浪费时间了,但是除了这样之外,以我目前的知识储备实在是想不出来了。n,m=map(int,input().split())ls=[] if n%m==0: a=m b=nelse: if n>m: for i原创 2020-08-10 11:00:20 · 231 阅读 · 0 评论 -
Python-KiKi求质数个数
求所有三位整数中质数的个数思路:质数只有0和自身两个除数,可以使用此特点来作为判断条件#!/usr/bin/pythons=0for i in range(100,1000): n = 0 for m in range(1,i+1): if i % m == 0: n = n + 1 if n == 2 : s+=1print(s)...原创 2020-08-03 10:37:44 · 777 阅读 · 1 评论 -
Python-KiKi判断上三角矩阵
输入描述:第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。输出描述:一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。例:输入31 2 30 4 50 0 6输出YES输入:41 2 3 45 6 7 89 0 11 1213 0 0 16输出:NO代码:n=int(input())a=nls=[]while n原创 2020-08-02 19:29:30 · 473 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:回形取数
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要...原创 2020-04-26 11:29:50 · 296 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:FJ的字符串
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?输入格式 仅有一个数:N ≤ 26。输出格式 请输出相应的字符串AN,以一个换行符结束。输出...原创 2020-04-06 11:17:02 · 299 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:相邻数对
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。输出格式 输出一个整数,表示值正好相差1的数对的个数。样例输入610 2 6 3 7 8样例输出3解答:思路:1、将输入的数字存入列表ls2、...原创 2020-04-06 10:40:47 · 1083 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:阶乘末尾
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定n和len,输出n!末尾len位。输入格式 一行两个正整数n和len。输出格式 一行一个字符串,表示答案。长度不足用前置零补全。样例输入6 5样例输出00720解答:思路:1、将阶乘结果转换为字符串2、如果len小于等于字符串长度,则直接输出末尾len位3、如果len大于长度,则右对齐并在左侧...原创 2020-04-05 21:56:58 · 147 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:P0505
资源限制时间限制:1.0s 内存限制:256.0MB 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5...原创 2020-04-05 21:27:36 · 241 阅读 · 0 评论 -
刷题日记--Python蓝桥杯:数据交换
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。 输入格式:输入只有一行,包括两个整数。 输出格式:输出只有一行,也是两个整数,即交换以后的结果。 要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而...原创 2020-04-05 20:57:04 · 164 阅读 · 0 评论 -
刷题日记:Python蓝桥杯--数列排序
问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9n=int(input())ls=list(map(int,in...原创 2020-03-25 11:39:10 · 291 阅读 · 0 评论 -
刷题日记:Python蓝桥杯--Fibonacci数列
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除...原创 2020-03-24 17:48:08 · 212 阅读 · 0 评论 -
刷题日记:Python蓝桥杯--十六进制转十进制、八进制
十六进制转十进制m=input()print(int(m,16))十六进制转八进制n=int(input())ls=[]for i in range(n): m=input() ls.append(m)for s in ls: print('{:o}'.format(int(s,16)))在输入过程中,本来是打算直接输入三个数字,用三个input()实现...原创 2020-03-21 11:12:51 · 353 阅读 · 0 评论 -
刷题日记:Python蓝桥杯--特殊的回文数
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定 1<=n<=54。在...原创 2020-03-20 15:53:53 · 1107 阅读 · 1 评论 -
刷题日记:Python蓝桥杯--回文数
知识点补充:字符串反转语句:使用字符串切片string = s[::-1]i='abcdef'print(i[::-1])输出结果为 fedcbai='abcdef'print(i[-2::-1])输出结果为 edcba下面为对回文数题目的解答:问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。输出格式 按从小到大的...原创 2020-03-19 16:48:21 · 340 阅读 · 0 评论 -
刷题日记:Python蓝桥杯--特殊的数字
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。输出格式 按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。解答:方法1for i in range(0,11): for m in range(0,11): ...原创 2020-03-19 16:20:24 · 247 阅读 · 0 评论