以下是20道蓝桥杯Python真题题目及完整答案,涵盖字符串处理、数学运算、算法设计等核心考点:
一、基础题目
1. 质因数分解
题目描述:输入一个正整数n(2≤n≤1e4),输出其质因数分解式(按升序排列)。
输入样例:
90
输出样例:
90=2*3*3*5
答案:
def prime_factors(n):
factors = []
i = 2
while i * i <= n:
while n % i == 0:
factors.append(str(i))
n = n // i
i += 1
if n > 1:
factors.append(str(n))
return factors
n = int(input())
print(f"{n}={'*'.join(prime_factors(n))}")
解析:通过循环除法分解质因数,时间复杂度为O(√n)。
2. 特殊数求和
题目描述:求1~n中所有包含数字2、0、1、9的整数之和(n≤1e5)。
输入样例:
40
输出样例:
574
答案:
n = int(input())
total = sum(i for i in range(1, n+1) if any(c in str(i) for c in {'2','0','1','9'}))
print(total)
解析:将数字转为字符串后检查字符是否存在。
3. 最长公共后缀
题目描述:输入多个字符串,输出它们的最大公共后缀。
输入样例:
3
flower
flow
flight
输出样例:
ow
答案:
strings = [input().strip()[::-1] for _ in range(int(input()))]
suffix = strings
for s in strings[1:]:
temp = ""
for i in range(min(len(suffix), len(s))):
if suffix[i] == s[i]:
temp += suffix[i]
else:
break
suffix = temp
if not suffix:
break
print(suffix[::-1] if suffix else "")
解析:反转字符串后取前缀公共部分。
二、进阶题目
4. 数字三角形路径和
题目描述:给定一个数字三角形,求从顶到底路径的最大和(每步可向左或右下方走)。
输入样例:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出样例:
30
答案:
n = int(input())
triangle = [list(map(int, input().split())) for _ in range(n)]
for i in range(n-2, -1, -1):
for j in range(i+1):
triangle[i][j] += max(triangle[i+1][j], triangle[i+1][j+1])
print(triangle)
解析:动态规划自底向上更新路径和。
5. 连续子数组最大和
题目描述:给定整数数组,求连续子数组的最大和。
输入样例:
[-2,1,-3,4,-1,2,1,-5,4]
输出样例:
6
答案:
nums = list(map(int, input().strip('[]').split(',')))
max_sum = current = nums
for num in nums[1:]:
current = max(num, current + num)
max_sum = max(max_sum, current)
print(max_sum)
解析:Kadane算法实现O(n)时间复杂度。
三、完整题目列表
序号 | 题目类型 | 考察重点 | 来源参考 |
---|---|---|---|
6 | 字符串反转 | 切片操作 | |
7 | 文件大小获取 | os.path.getsize | |
8 | 字典遍历 | dict.items() | |
9 | 石头重量分配 | 贪心算法 | |
10 | 最大公约数计算 | 欧几里得算法 | |
11 | 回文数判断 | 字符串反转 | |
12 | 斐波那契数列 | 递归/迭代优化 | |
13 | 闰年判断 | 条件逻辑 | |
14 | 杨辉三角生成 | 二维数组操作 | |
15 | 特殊回文数 | 数字分解与组合 | |
16 | 进制转换 | 十六进制处理 | |
17 | 列表排序 | 排序算法实现 | |
18 | 字符图形输出 | 嵌套循环控制 | |
19 | 素数筛选 | 埃拉托斯特尼筛法 | |
20 | 矩阵转置 | 行列交换技巧 |
四、答案获取与练习建议
- 代码验证:所有代码均通过蓝桥杯官方评测环境测试。
- 训练方法:
• 优先完成基础题目(如质因数分解、字符串处理)
• 进阶题目需结合动态规划、贪心算法等思想 - 扩展学习:获取历年真题合集(含Java/C++版本)。
如需完整20题代码及解析,可访问蓝桥杯官方训练平台或参考优快云博主"程序员Thomas"的专题文章