20道蓝桥杯Python真题题目及完整答案,涵盖字符串处理、数学运算、算法设计等核心考点

以下是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矩阵转置行列交换技巧

四、答案获取与练习建议

  1. 代码验证:所有代码均通过蓝桥杯官方评测环境测试。
  2. 训练方法
    • 优先完成基础题目(如质因数分解、字符串处理)
    • 进阶题目需结合动态规划、贪心算法等思想
  3. 扩展学习:获取历年真题合集(含Java/C++版本)。

如需完整20题代码及解析,可访问蓝桥杯官方训练平台或参考优快云博主"程序员Thomas"的专题文章

### 蓝桥杯 Python 历年考试重点和常见题型 #### 一、基础知识考察 蓝桥杯竞赛中的Python部分注重对编程基础的理解,包括但不限于变量定义、基本数据类型操作以及控制流语句的应用。这些知识点构成了后续复杂逻辑实现的基础。 对于A+B这类简单的算术运算题目,在比赛中也经常作为入门级考题出现,用于检验参赛者能否正确处理输入输出并完成基本计算任务[^2]。 #### 二、字符串处理能力 在历年真题中,涉及到了大量的字符串操作类问题,比如查找子串位置、替换特定字符等内容。掌握好正则表达式的运用可以极大提高解决此类问题效率的同时也能让代码更加简洁明了。 #### 三、文件读取与写入技巧 能够熟练地进行文本文件或其他格式的数据文件的操作同样是考查的重点之一。这不仅限于打开关闭文件这样的基础功能,还包括如何高效批量处理大量记录等高级特性。 #### 四、经典算法理解程度 除了上述提到的具体技术细节外,对于一些经典的计算机科学概念如排序算法的选择与应用也是必不可少的知识点。快速排序作为一种高效的内部排序方法被广泛提及;而像广度优先搜索(BFS) 和深度优先搜索(DFS),则是图论领域内解决问题的重要工具[^1]。 ```python def bfs(graph, start): visited = set() queue = [start] while queue: vertex = queue.pop(0) if vertex not in visited: visited.add(vertex) queue.extend(set(graph[vertex]) - visited) return visited def dfs(graph, start, visited=None): if visited is None: visited = set() visited.add(start) for next_node in graph[start] - visited: dfs(graph, next_node, visited) return visited ``` #### 五、动态规划思维培养 面对具有重叠子问题特性的优化求解场景时,采用自底向上构建最优解的方式——即所谓的“记忆化递归”,或是通过表格迭代更新来达到目的的方法均属于该范畴内的核心技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Thomas

谢谢您的打赏,我将会更好创作。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值