- 博客(36)
- 收藏
- 关注
原创 网页设计作业05
/isNaN() 函数用于检查其参数是否是非数字值。//将上一个结果与这次的结果进行字符串拼接。//将字母全部转化为小写。//用数组存储所有的字符。
2025-10-17 15:03:08
776
原创 day07——函数、return返回值、形参、函数的各类参数与函数嵌套
本文介绍了Python函数的基本概念和使用方法。主要内容包括:1)函数的定义与调用基本格式;2)返回值return的三种情况(无返回值、单返回值、多返回值);3)四种参数类型(必备参数、默认参数、可变参数和关键字参数)及其用法;4)函数嵌套的两种形式(嵌套调用和嵌套定义)。文章通过简洁的代码示例展示了各类函数的使用场景,帮助理解Python函数的核心概念和实际应用。
2025-09-02 11:42:37
251
原创 day06——类型转换、赋值、深浅拷贝、可变和不可变类型
本文介绍了Python中的类型转换、深浅拷贝以及可变与不可变数据类型。在类型转换部分,详细说明了int()、float()、str()、eval()和list()等函数的使用方法及注意事项。深浅拷贝部分解释了赋值、浅拷贝和深拷贝的区别,其中浅拷贝只复制第一层数据,深拷贝则完全复制所有层级数据。最后阐述了可变类型(如列表、字典、集合)和不可变类型(如整数、字符串、元组)的特性,可变类型可修改值而不改变内存地址,不可变类型修改值会分配新内存空间。
2025-09-01 10:26:30
443
原创 day05——集合的格式及应用
本文介绍了Python集合(set)的基本概念和操作。集合用{}定义,具有无序性和唯一性(自动去重)。文章详细讲解了集合的基本操作:添加元素(add/update)、删除元素(remove/pop/discard)以及集合运算(交集&、并集|)。特别指出集合无序性源于hash表实现,不同数据类型的hash值特性导致不同表现。同时还解释了空集合与空字典的区别,以及各种方法的使用差异和注意事项。
2025-08-26 14:41:16
305
原创 day04——元组,字典的定义与字典的常见操作
本文介绍了Python中元组和字典的基本用法。元组使用小括号定义,元素不可修改,支持查询操作;字典使用花括号定义,以键值对形式存储数据,支持增删改查。文章详细讲解了元组与列表的区别、元组的应用场景,以及字典的常见操作,包括查看、修改、添加和删除元素的方法。通过代码示例展示了两种数据类型的特性和使用方式,帮助理解它们的实际应用场景。
2025-08-24 15:46:40
148
原创 day03——列表的定义与增、删、改、查,列表的推导式与嵌套
本文介绍了Python列表的基本操作和常见方法。主要内容包括:1)列表的基本格式和切片操作;2)元素添加方法(append、extend、insert);3)元素修改和查找(in/not in);4)元素删除方法(del、pop、remove);5)排序方法(sort、reverse);6)列表推导式的两种格式;7)列表嵌套的访问方式。文章通过代码示例详细演示了每种操作的具体用法,并强调了如extend()必须接收可迭代对象等注意事项。
2025-08-22 23:59:59
312
原创 day03——字符串的查找,修改,判断
本文介绍了Python字符串的常见操作,主要包括查找、修改和判断三类方法。查找操作包括find()、index()和count(),用于检测子串位置和出现次数;修改操作如replace()替换、split()分割、capitalize()首字母大写、lower()/upper()大小写转换等;判断操作如startswith()/endswith()检测开头结尾、isupper()判断是否全大写等。这些方法都支持指定查找/操作范围,遵循"包前不包后"原则。文章通过示例代码展示了各方法的使用
2025-08-22 16:32:24
449
原创 day03——字符串编码与字符串常见操作
本文介绍了字符串编码与常见操作。在编码部分,对比了Unicode(固定2字节)和UTF-8(变长编码)的特点及转换方法。字符串操作部分涵盖:拼接(+)、重复输出(*)、成员判断(in/not in)、下标访问(从0开始)和切片([start:end:step]),重点说明切片的方向由步长正负决定,且遵循包前不包后原则。文中通过Python代码示例演示了各项操作的具体实现。
2025-08-22 11:34:11
345
原创 day03——while循环与嵌套循环,for循环与continue、break关键字
本文介绍了Python中的循环结构,主要包括while循环和for循环两种形式。while循环部分讲解了基本语法、应用示例(如计算1-100的和)以及嵌套使用;for循环部分介绍了基本格式、range()函数的使用和应用示例。此外,还介绍了break和continue关键字的作用:break用于终止整个循环,continue用于跳过当前循环继续下一次循环。文章通过具体代码示例演示了每种循环结构的使用方法和注意事项。
2025-08-22 09:57:57
272
原创 day02——if判断,逻辑运算符,if-else,if-elif和if嵌套
本文介绍了Python中条件判断的几种基本结构:1) 单if判断;2) 使用and/or/not的逻辑运算符;3) if-else结构;4) 三目运算;5) if-elif多条件分支;6) if嵌套结构。每种结构都给出了基本语法格式和示例代码,展示了不同场景下的条件判断方法。
2025-08-21 15:53:43
167
原创 day02——算术运算符,输入函数和转义字符
本文介绍了Python中的运算符和输入输出相关内容。主要包括:1)算术运算符(+、-、*、/、//、%、**)的使用规则和注意事项;2)赋值运算符(+=、-=)的特点;3)input()函数获取用户输入的方法;4)常见转义字符(\t、\n、\r、\)的功能及原生字符串r的用法。重点强调了除法运算符的结果类型、输入函数的使用格式以及转义字符在字符串中的实际效果。
2025-08-21 14:24:55
160
原创 day02——数据类型,字符串与格式化输出
本文介绍了Python中的数据类型和字符串格式化输出方法。主要内容包括:1) 使用type()检测数据类型,重点讲解布尔型(True/False)和复数型;2) 字符串的定义方式,包括单引号、双引号和三引号;3) 格式化输出方法,详细介绍了%占位符(%s、%d、%f等)的使用规则和f-string格式化语法。文章通过代码示例展示了各种数据类型的定义和格式化输出的具体应用,特别强调了布尔值的大小写敏感性和占位符的使用注意事项。
2025-08-21 11:14:52
268
原创 day01——输出函数
本文介绍了Python编程中的基础知识点。主要内容包括:1. 常用快捷键Ctrl+F(查找)和Ctrl+D(复制到下一行);2. print()函数的详细用法,包括多对象输出、sep和end参数的使用,以及变量与字符串的区别;3. 单引号与双引号的区别,以及转义字符的使用方法。
2025-08-21 11:01:49
190
原创 二分答案——【进击的奶牛问题】解析
农夫约翰要将 m 头牛放进 n 间直线排列的牛舍,需最大化任意两头牛间的最小距离。解题时先将牛舍位置排序,再用二分法查找可能的距离 d:左边界设为 1,右边界设为最大位置值,对中间值 mid 用 check 函数验证 —— 从第一个牛舍开始,统计间距≥mid 的牛舍数量,若数量≥m 则说明 mid 可行,尝试更大距离,否则缩小范围。
2025-06-24 17:07:44
808
原创 二分答案——【砍树问题】解析
题目要求伐木工人设定伐木机锯片的最大高度H,使得砍伐后的木材总量至少为M米。采用二分查找法,在可能的锯片高度范围[0, 最高树高]内寻找满足条件的最小H值。对每个中间高度mid,计算所有高于mid的树被截断后得到的木材总量,若满足需求则继续尝试更大的高度,否则减小高度。最终输出满足条件的最大整数H。这种方法通过排序和二分查找高效解决了该问题。
2025-06-24 15:18:48
756
原创 二分查找——【查找问题】解析及思考
题目要求在有序数组中查找元素首次出现的位置。给定n个有序数字和m次查询,每次查询需要返回目标数字在数组中第一次出现的下标,若不存在则返回-1。 解题思路采用二分查找法,通过不断缩小查找范围来高效定位元素。关键点在于处理重复元素时保证找到首个出现的位置:当中间值≥目标时继续在前半段搜索,否则搜索后半段。最终检查找到的位置是否匹配目标值。 输入输出规模较大,需使用快速IO方法。程序实现简洁,时间复杂度为O(m log n),适用于题目给定的数据范围。
2025-06-24 14:32:17
799
原创 贪心——【凌乱的yyy(活动安排问题)】解析
题目描述yyy要参加尽可能多的比赛,每个比赛有开始和结束时间,且不能同时参加多个比赛。解决方法是贪心算法,优先选择结束时间最早的比赛。将比赛按结束时间排序后,依次选择与前一个不冲突的比赛。最终程序输出最多能参加的比赛数目。该算法时间复杂度为O(nlogn),适用于大规模数据。
2025-06-24 13:52:25
651
原创 贪心——【部分背包问题】解析
摘要:题目描述阿里巴巴在藏宝洞中有N堆金币,每堆有重量m_i和价值v_i,背包承重T。金币可分割,求能带走的最大价值。解题思路是按单位价值从高到低排序金币堆,优先装入完整堆,剩余空间装入部分堆。参考程序使用结构体存储金币信息,自定义排序比较函数避免浮点运算,最后计算总价值并保留两位小数输出。
2025-06-24 13:26:39
601
原创 递归——【Function问题】解析
题目P1464要求实现一个递归函数w(a,b,c),并处理大量输入。函数有以下规则: 当任一参数≤0时返回1 当任一参数>20时返回w(20,20,20) 当a<b<c时使用特定递归公式 其他情况使用另一个递归公式 由于直接递归会导致重复计算,需要使用记忆化搜索优化。程序使用三维数组存储计算结果,避免重复递归,提高效率。输入输出格式要求严格匹配示例,以“-1,-1,-1”作为结束标志。数据范围虽大,但实际有效计算范围在0到20之间。
2025-06-24 12:00:22
782
原创 递归——【数的计算问题】解析
题目要求计算给定正整数n能生成的不同合法数列数量。合法数列定义是:初始为一个n,后续每个新增数字不超过前一个的一半。采用动态规划解法,定义f[i]表示数字i的数列数量。初始f[1]=1,对于每个i,其数列数量等于1加上所有1到i/2的数列数量之和。使用记忆化搜索避免重复计算,最终返回f[n]作为答案。
2025-06-24 11:36:46
884
原创 递推——【过河卒问题】解析
题目描述棋盘上过河卒从(0,0)走到(n,m),每次只能向下或向右移动。存在对方马及其控制点(共9个位置),卒不能经过这些点。要求计算所有可行路径数量。 解法采用动态规划,f[i][j]表示到(i,j)的路径数,递推公式为f[i][j] = f[i-1][j] + f[i][j-1]。首先标记马的控制点,初始条件f[0][0]根据是否被控制设为0或1。遍历棋盘时跳过控制点,最终输出f[n][m]。
2025-06-23 20:47:51
590
原创 递推——【数楼梯问题】解题思路及memcpy函数的应用
题目要求计算N阶楼梯的不同走法数,每次可走1阶或2阶。这是一个典型的斐波那契数列问题,递推式为f(n)=f(n-1)+f(n-2),初始条件为f(1)=1,f(2)=2。由于N可能达到5000,需要使用高精度加法来处理大数运算。程序通过数组存储中间结果,逐项计算并将结果保存在数组中,最后倒序输出最终结果。这种方法有效避免了数值溢出问题,适用于大规模输入。
2025-06-23 15:54:40
661
原创 排列枚举——全排列问题(使用next_permutation函数)
该题目要求输出1到n的全排列,每个排列占一行,数字保留5个场宽。解题方法是利用C++标准库的next_permutation函数生成所有字典序排列。首先初始化数组a为1到n的升序序列,然后循环调用next_permutation生成下一个排列并输出,直到所有排列生成完毕。输出时每个数字使用printf格式化输出为5位场宽。注意数组从1开始存储,函数参数要对应调整范围。适用于n的范围1≤n≤9。
2025-06-23 14:35:31
1017
原创 子集枚举——【选数问题】问题解析及与运算的应用
题目要求从n个整数中选取k个数,计算其和为质数的组合数。采用二进制枚举法,通过位运算表示所有可能的k元素子集,对每个子集求和并判断是否为素数。关键步骤包括:1)用二进制位表示元素选择,2)检查子集大小是否等于k,3)计算子集和并验证是否为素数。该方法通过位运算高效遍历所有组合,时间复杂度与组合数相关。例如输入4个数选3个,其中只有1个组合和为素数。
2025-06-23 01:42:31
982
原创 奖学金问题求解 及对于sort函数自定义排序规则的应用
该题目要求对学生的成绩进行排序并输出前5名。排序规则依次为:总分降序、语文成绩降序、学号升序。程序使用结构体存储学生信息(语文成绩、学号、总分),通过自定义比较函数cmp实现多条件排序。输入学生成绩后计算总分,调用sort函数按规则排序,最后输出前5名学生的学号和总分。样例输入6名学生成绩数据,输出按规则排序后的前5名结果。关键在于正确处理多级排序条件和结构体的使用。
2025-06-21 16:33:05
1047
原创 归并排序 及一些解析思考
本文介绍了归并排序算法及其实现。归并排序基于分治思想,将数组不断拆分为子数组进行排序后合并。文中详细讲解了算法的三个步骤:分解、递归排序和合并,并通过代码示例展示了具体实现过程。程序使用临时数组存储排序结果,最终输出有序数列。输入示例为5个无序数字,经过归并排序后输出有序结果1 2 3 4 5。该方法适用于大规模数据排序,时间复杂度为O(nlogn)。
2025-06-21 15:09:38
266
原创 快速排序 及一些思考
快速排序是一种分治算法,通过选择一个基准值,将数组分为两部分,使得左边部分的所有元素都小于等于基准值,右边部分的所有元素都大于等于基准值,然后递归地对两部分进行排序。
2025-06-21 13:12:50
825
原创 高精度乘法 及一些解析
摘要:P1303 A*B Problem是一道高精度乘法模板题,要求计算两个非负整数乘积。解题思路:1) 将输入字符串逆序存储为数组;2) 模拟竖式乘法,逐位相乘并处理进位;3) 去除结果前导零;4) 逆序输出结果。关键点在于正确处理进位和结果位数,特别要注意乘积位数可能达到两数位数之和,以及结果为0的特殊情况。程序通过双循环实现逐位相乘,动态维护进位和最终结果长度。
2025-06-21 11:43:15
254
原创 高精度加法 代码及笔记
摘要 《P1601 A+B Problem(高精)》是一道高精度加法题目,要求实现两个大整数相加(不考虑负数)。程序使用字符串读取输入,将数字逆序存入数组进行运算。核心算法模拟竖式加法,逐位相加并处理进位。当最高位有进位时扩展结果长度。最后逆序输出结果数组。程序展示了字符串与数组的转换方法、高精度运算原理和进位处理技巧。
2025-06-20 15:52:29
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅