- 博客(20)
- 收藏
- 关注
原创 Python里的for和while循环(包含break和continue)
Python中的for循环和while循环是两种核心迭代结构。for循环适合遍历已知序列(如列表、字符串),具有自动管理迭代过程的特点;while循环适用于条件驱动的不确定场景(如用户输入验证),但需手动控制条件以防无限循环。两种循环都支持else子句和break/continue控制语句。实战案例包括文件行数统计、猜数字游戏和图形打印。优化建议包括减少循环内计算、使用生成器处理大数据等。选择循环时应优先考虑for遍历序列,while处理不确定条件场景。
2026-02-04 22:12:03
955
原创 Python里有关程序的描述方式,组织结构和顺序循环的相关知识
本文介绍了Python编程的基本结构与组织方法。主要内容包括:1)三种程序描述方式(自然语言、流程图、伪代码);2)程序三大基本结构(顺序、选择、循环)的具体实现;3)代码组织进阶方法(函数封装、类组织);4)编程最佳实践(缩进规范、命名规则等)。文章通过温度转换器等实例演示了综合应用,并给出学习建议:从基础结构入手,注重注释和调试,通过小项目实践巩固知识。掌握这些内容有助于编写结构清晰、可维护的Python程序。
2026-02-03 21:29:23
341
原创 Python中的各种数据类型转换,eval函数的用法和各种运算符
Python数据类型转换与运算符使用指南 摘要:本文系统介绍了Python中的数据类型转换和运算符使用方法。数据类型转换分为隐式(自动)和显式(手动)两种,详细讲解了数字、字符串、序列和字典等类型的转换技巧及常见错误处理。运算符部分全面覆盖了算术、比较、逻辑、赋值、位运算等各类运算符,通过实际案例演示了它们的应用场景和注意事项。特别强调了eval()函数的安全风险及替代方案,并提供了初学者常见错误的解决方法。掌握这些基础知识对Python编程至关重要,建议通过反复练习来巩固学习效果。
2026-02-01 23:44:07
576
原创 Python有关保留字与标识符,变量与常量,数值类型,字符串类型,布尔类型的知识点梳理
本文系统讲解了Python核心数据类型,包括保留字、标识符、数值类型、字符串和布尔值。保留字部分详细列出了35个Python关键字及其分类,强调不可作为标识符使用;标识符部分规范了命名规则和PEP8标准;数值类型涵盖整型、浮点型、复数及布尔型,重点说明类型转换和精度处理;字符串章节深入解析索引切片、转义字符和格式化方法;布尔值部分阐述逻辑运算、比较运算及实际应用场景。全文通过代码示例和最佳实践指导,帮助开发者正确使用Python基础数据类型,规避常见错误,提升代码质量和可读性。
2026-02-01 21:56:17
1053
原创 Python基础:print、input、注释和缩进
本文摘要: Python基础语法要点总结:1.print函数用法:支持字符串/变量输出,多值分隔符(sep)、换行控制(end)、文件输出(file)等参数;2.input函数交互:获取用户输入,支持提示信息、多值拆分和类型转换;3.注释规范:单行(#)、多行('''''')和文档字符串(Docstring)的使用场景与格式要求;4.缩进规则:Python通过4空格缩进定义代码块,禁止混用空格/Tab,需严格对齐层级。文中包含具体语法示例、常见错误及自动化工具推荐,是Python编程的基础核心知识。
2026-01-31 23:41:26
1058
原创 LeetCode1502. 判断能否形成等差数列
给你一个数字数组arr。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为。如果可以重新排列数组形成等差数列,请返回true;否则,返回false。true对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。false无法通过重新排序得到等差数列。
2026-01-18 17:17:42
398
原创 LeetCode283. 移动零
本文介绍了三种原地移动零元素到数组末尾的方法:1. 双指针法:使用快慢指针,将非零元素前移并置原位置为零;2. 先移动后填充:先集中移动非零元素,再在剩余位置补零;3. 交换法:通过交换非零元素与慢指针位置的值实现移动。三种方法时间复杂度均为O(n),空间复杂度O(1),其中交换法最为常用。这些方法都能保持非零元素的相对顺序,满足题目要求的原地操作条件。
2026-01-18 12:54:58
77
原创 LeetCode242. 有效的字母异位词
摘要:本文介绍了一种判断两个字符串是否为字母异位词的方法。通过使用26位的计数数组统计字符出现次数:先遍历第一个字符串增加对应字符计数,再遍历第二个字符串减少计数。若最终所有字符计数均为0,则说明两字符串字符组成相同(字母异位词),返回true;否则返回false。该方法时间复杂度O(n),空间复杂度O(1),能高效处理长度不超过5×10^4的字符串。文中通过"anagram/nagaram"和"rat/car"两个示例说明了算法的执行过程。
2026-01-17 16:25:48
83
原创 LeetCode28. 找出字符串中第一个匹配项的下标
摘要:该算法实现字符串匹配功能,在主串haystack中查找子串needle的首次出现位置。通过双重循环实现:外层遍历主串所有可能起始位置,内层逐字符比较。若完全匹配则返回当前起始下标,否则继续查找。时间复杂度为O((n-m+1)*m),最坏情况下需比较所有可能位置。算法简洁直观,适用于基础字符串匹配需求。
2026-01-17 15:24:28
83
原创 389. 找不同(LeetCode)
多一个字符,这个额外的字符会因为没有与之配对的相同字符进行异或而保留下来。空间复杂度:O(1)。我们只使用了常数级别的额外空间(以上就是一些相关知识,现在让我们正式开始解题。中的每一个字符进行异或操作,并将结果存回。时间复杂度:O(n),其中 n 是字符串。随机重排,然后在随机位置添加一个字母。中的每一个字符进行异或操作。这个变量将用来累积异或的结果。'e' 是那个被添加的字母。所有字符异或后的值。,它就是那个被添加的字符。,它们只包含小写字母。函数接收两个字符串指针。中所有字符异或后的值。
2026-01-09 11:46:32
427
原创 力扣1768. 交替合并字符串
本文提出了一种交替合并两个字符串的算法。该方法使用双指针遍历两个字符串,依次交替取出字符拼接,当一个字符串遍历完后,将另一个字符串剩余部分直接追加。算法实现为:计算字符串长度,分配足够内存,通过while循环交替复制字符,最后处理剩余字符并添加结束符。时间复杂度为O(n),空间复杂度为O(len1+len2)。该解法简洁高效,适用于需要字符串交替合并的场景。
2026-01-07 21:22:34
322
原创 加一(LeetCode第66题)
本文介绍了如何对大整数数组进行加1操作。算法从数组末尾开始逆向遍历,模拟进位加法:若当前位小于9则直接加1返回;若为9则置0并进位。特殊情况下(如999),所有位都置0后需在数组首位添加1。示例代码展示了具体实现,包括处理常规进位和全9情况的解决方案。时间复杂度为O(n),空间复杂度在最坏情况下为O(n+1)。该算法高效解决了大整数加1的数组表示问题。
2026-01-07 20:19:05
340
原创 力扣新手村题解大合集!!!
本文介绍了6道LeetCode算法题的解法:1)一维数组动态和计算;2)数字归零操作次数统计;3)客户最大资产总量查找;4)FizzBuzz字符串生成;5)链表中间节点定位;6)赎金信字符匹配。各题解均包含核心代码实现,其中第5题详细解析了快慢指针法的原理和复杂度分析。这些题目难度适中,涉及数组处理、循环控制、字符串操作和链表遍历等基础算法技巧,适合算法初学者练习。
2026-01-06 21:55:39
323
原创 一维数组的动态和(LeetCode第1480题新手村第一题!!!)
本文介绍了一个计算数组动态前缀和的算法。动态前缀和定义为每个元素等于原数组从开始到当前位置所有元素的和。算法通过原地修改数组实现:从第二个元素开始,每个元素累加前一个元素的值。该方法时间复杂度为O(n),空间复杂度为O(1)。需要注意原地修改会覆盖原数据,且可能存在整型溢出问题。适用于允许修改输入数据且对内存敏感的场景。
2026-01-06 15:43:46
255
原创 最长回文子串(LeetCode第5题)
摘要:本文介绍了在字符串中寻找最长回文子串的算法实现。采用中心扩展法,通过遍历字符串中的每个字符作为中心点,分别处理奇数长度和偶数长度的回文情况。核心函数extend()从中心向两侧扩展寻找回文,主函数longestPalindrome()遍历字符串并记录最长回文边界。文中提供了详细的C语言实现代码,包含注释说明每个关键步骤的功能,特别是解释了复制回文子串时的边界处理逻辑。该算法时间复杂度为O(n²),适用于新手理解回文检测的基本原理。
2026-01-05 15:53:59
881
原创 二进制求和(LeetCode第67题)
/ 进位只能是1,转换为字符'1'// 将右指针位置的字符赋值给左指针位置。// 指针指向字符串a的最后一个字符(最低位)// 指针指向字符串b的最后一个字符(最低位)// 计算当前位置三个数的和:a的当前位 + b的当前位 + 进位。// 在结果字符串末尾添加结束符'\0'
2026-01-05 09:46:53
456
原创 按奇偶排序数组(LeetCode第905题)
新建一个数组 res 用来保存排序完毕的数组。遍历两次 nums,第一次遍历时把所有偶数依次追加到 res 中,第二次遍历时把所有奇数依次追加到 res 中。(本人理解:这种方法先将遍历原数组中偶数放入一个新的数组,在第二次遍历将原数组中的奇数放入新数组)但是又得满足偶数在前奇数在其后的规定,由此不仅地想到一个方法:将偶数从前往后排(left),讲奇数从后往前排(right)中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。来源:力扣(LeetCode)题目:给你一个整数数组。
2026-01-04 15:38:37
148
原创 两数之和(LeetCode第一题!!!)
在题解里面学到了很多不一样的解题方法,好像打开了新世界的大门一样,里面的东西都显得是这么高级,优雅,不说废话了接下来看看代码吧。调用者通过检查 *returnSize的值,可以知道 result指针是有效的(长度 > 0)还是无效的(长度 = 0,指针为 NULL)。但指针本身不包含长度信息,因此需要一个额外的参数来传递这个长度,这就是 returnSize的由来。// 关键:通过指针,将结果长度告知调用者。returnSize是一个输出参数,它的核心作用是:告诉调用者,函数动态分配并返回的数组有多长。
2025-12-31 17:13:23
314
原创 C语言——回文数字
一个新手小白的开始总是充满困难,不知何时作为大一新生的我心中悄然满下了一颗保研的种子,幻想着自己可以和学长学姐那样去到更好的学校,等这段时间忙完,我就去找老师商量一下进组的事情了,没有想到这一件曾经我以为很遥远的事情现在也变的可以触碰,现在的当务之急就是把这次的期末考考好来,尽量争取都达到90分以上,这样我才可以追上他们的脚步,加油吧,没想到今天跨年我现在还待在图书馆里学习,第一篇博客也到此结束了,希望我可以保持这个习惯把,加油!= str[j]) { // 首尾字符不相等,不是回文数。
2025-12-31 11:35:13
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅