每日4道算法题——第002天

这篇博客包含了四道算法题目,分别是:判断两个矩形是否重叠、推多米诺骨牌问题、新21点游戏的概率计算以及寻找相似字符串组的问题。每个题目都有详细的描述和示例,适合算法爱好者进行练习和挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、矩形重叠

2、推多米诺

3、新 21 点

4、相似字符串组


1、矩形重叠

矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。矩形的上下边平行于 x 轴,左右边平行于 y 轴。

如果相交的面积为 正 ,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。

给出两个矩形 rec1 和 rec2 。如果它们重叠,返回 true;否则,返回 false 。

示例 1:

输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
输出:true


示例 2:

输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
输出:false


示例 3:

输入:rec1 = [0,0,1,1], rec2 = [2,2,3,3]
输出:false
 

提示:

rect1.length == 4
rect2.length == 4
-109 <= rec1[i], rec2[i] <= 109
rec1 和 rec2 表示一个面积不为零的有效矩形

<think>好的,我现在需要帮助用户了解如何通过计算机二级Python考试的学习方法和资源,特别是零基础的学习计划、真题和练习教程。首先,我应该整理出用户的需求,他们可能需要从基础开始学习Python,然后逐步掌握考试相关的知识点,接着通过练习真题来巩固和提高。同时,用户可能还希望知有哪些优质的学习资源,比如书籍、在线课程或者题库。 首先,我得确定计算机二级Python考试的具体内容和考试大纲。通常这类考试会包括Python语法基础、流程控制、函数、文件操作、数据结构、算法基础、面向对象编程以及简单的数据库操作等内容。对于零基础的学习者来说,分阶段学习是关键,可能需要分为入门阶段、巩固阶段和冲刺阶段。 接下来,我需要考虑每个阶段的学习计划。入门阶段可能需要学习基本语法,比如变量、数据类型、运算符、条件语句、循环等。这时候推荐一些适合初学者的书籍或在线教程,比如《Python编程:从入门到实践》或者菜鸟教程网站。巩固阶段则需要深入学习函数、文件操作、异常处理、模块和包的使用,以及数据结构如列表、字典、元组和集合的应用。同时,可能需要引入简单的算法题目,比如排序和查找。冲刺阶段的话,应该聚焦于真题练习和模拟考试,熟悉考试题型和时间管理,同时复习易错点和重点知识。 然后,关于资源推荐,需要找一些权威的教材、在线课程和题库。比如官方推荐的教材,中国大学MOOC上的课程,以及一些专门的题库网站如牛客网、LeetCode的简单题目。此外,模拟考试软件也很重要,可以帮助用户熟悉考试环境。 用户可能还会关心如何高效地安排学习时间,尤其是零基础的学习者。可能需要建议每的学习时间分配,比如每2小时,持续3个月左右,每个阶段的时间分配比例,以及如何平衡理论学习与实践编码。 另外,需要注意考试中的常见考点和易错点,比如Python的缩进规则、可变与不可变数据类型、函数参数传递机制等。这些需要在学习计划中重点强调,并通过练习题来强化记忆。 最后,要确保回答结构清晰,分点列出学习计划、资源推荐、真题练习方法以及备考建议,让用户能够一步步跟随指导进行学习。同时,回答中提到的资源如果有引用来源,需要正确标注引用标识,但根据用户提供的示例,似乎引用标识可以放在段落末尾,如[^1],但实际引用来源可能需要根据实际情况调整。</think>### 计算机二级Python考试零基础学习指南 --- #### 一、分阶段学习计划 1. **入门阶段(4-6周)** - **基础语法**:掌握变量、数据类型(字符串/列表/字典)、运算符、条件语句(`if-elif-else`)、循环(`for/while`) *推荐资源*:《Python编程:从入门到实践》前8章[^1] - **简单实践**:编写小型程序(如计算器、猜数字游戏) ```python # 示例:猜数字游戏 import random target = random.randint(1,100) while True: guess = int(input("输入1-100的整数:")) if guess == target: print("猜对了!") break elif guess < target: print("猜小了") else: print("猜大了") ``` 2. **巩固阶段(4-5周)** - **核心模块**:学习函数定义、文件操作(`open/read/write`)、异常处理(`try-except`) - **数据结构**:列表推导式、字典的键值操作、元组与集合特性 *重点练习*:文本处理(如统计单词频率) - **算法基础**:掌握冒泡排序、二分查找等基础算法 3. **冲刺阶段(3-4周)** - **真题训练**:每完成1套历年真题(2018-2023年) - **模拟考试**:使用考试系统模拟环境(如虎奔教育模拟软件) - **错题复盘**:整理高频易错点(如可变对象传参问题) --- #### 二、核心资源推荐 | 类型 | 推荐内容 | |------------|--------------------------------------------------------------------------| | **教材** | 《全国计算机等级考试二级教程——Python语言程序设计》(官方指定教材)[^2] | | **题库** | 牛客网计算机二级专题(含解析)、未来教育题库 | | **课程** | 中国大学MOOC《Python语言程序设计》(北理工嵩教授)[^3] | | **工具** | PyCharm社区版(IDE)、Jupyter Notebook(交互式练习) | --- #### 三、真题重点解析 1. **高频考点**: - 字符串处理(切片/格式化/常用方法) - 文件操作(CSV文件读写、`json`模块) - 函数设计(参数传递、返回值) ```python # 真题示例:统计文本中单词频率 def word_count(file_path): counts = {} with open(file_path, 'r') as f: for line in f: words = line.strip().split() for word in words: counts[word] = counts.get(word, 0) + 1 return counts ``` 2. **易错点提醒**: - 缩进错误(混合使用空格与Tab键) - 可变对象修改(如列表作为函数默认参数) - 文件打开模式混淆(`r`/`w`/`a`的区别) --- #### 四、备考时间建议 | 时间段 | 学习内容 | 每日投入 | |----------|-----------------------------------|----------| | 第1-2月 | 基础知识+小型项目实践 | 1.5小时 | | 第3月 | 真题训练+错题分析 | 2小时 | | 考前1周 | 模拟考试+重点公式复习(如正则表达式语法) | 3小时 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Roc-xb

真诚赞赏,手留余香

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

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

打赏作者

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

抵扣说明:

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

余额充值