- 博客(24)
- 收藏
- 关注
原创 Leetcode刷题记录9——找出字符串中第一个匹配项的下标
(3)对于haystack长度等于needle的情况,再分两种情况,如果haystack不等于needle,直接返回-1,如果相等,直接返回0。(4)对于haystack长度大于needle的情况,对haystack进行遍历,找到第一个与needle相同的字符段,并返回索引。(2)对于haystack长度小于needle的情况,needle 一定不是 haystack 的一部分,直接返回 -1。解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1。
2025-03-21 19:45:54
281
原创 Leetcode刷题记录8——移除元素
后一位置**,通过一个快指针遍历数组中的所有元素,将快指针找到的与val不等的元素赋值给慢指针定位的元素,并将慢指针移动一位,遍历后即为所求。其中,“移除数组”是指已经将与val相等元素移除出去的部分。解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3,输出:2, nums = [2,2,
2025-03-20 09:01:59
202
原创 Leetcode刷题记录7——删除有序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]
2025-03-08 22:13:45
276
原创 Leetcode刷题记录6——合并两个有序链表
思路一:通过递归的方式,每一次递归都由两个链表元素最小的的节点作为前置节点,连接其它节点的递归结果,由于每一次都是选择最小节点,可以保证最终链表的升序排列。(2)遍历两个链表,把较小的节点作为下一个节点,循环遍历直到一个链表被查询完。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4](3)把另一个链表剩余的部分接到新链表后,返回。输入:l1 = [], l2 = [0]输入:l1 = [], l2 = []输出:[1,1,2,3,4,4]
2025-03-05 21:02:12
221
原创 Leetcode刷题记录5——有效的括号
(3)为了避免对类似于’)))(((‘和’}}{{'的括号左右顺序错误情况误判为正确,在每一次做完加减法后都需要加一个判断,如果small、mid、large三个变量中出现一个负值,代表该字符串一定出现了左右顺序错误,直接返回False。(2)遍历字符串,遇到左边的括号就压入栈,遇到右边的括号就查看栈顶的元素,如果匹配,就pop出,如果不匹配,把右边的括号也压入栈。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。(1)建立括号之间的匹配字典,以及空的栈。
2025-03-03 09:43:44
245
原创 Leetcode刷题记录4——最长公共前缀
(1)首先找到字符串数组中“最大”和“最小”的两个字符串(此处我直接用的python中的min和max函数,我觉得应该是比较ASCII码)。(5)如果在此过程中发现最长公共前缀为空,可以直接退出循环,以节省算力资源。输入:strs = [“flower”,“flow”,“flight”]输入:strs = [“dog”,“racecar”,“car”](4)将两个字符一致的部分更新为新的最长公共前缀,重新进入。(2)找到这两个字符串的最长公共前缀即为所求。如果不存在公共前缀,返回空字符串 “”。
2025-03-02 12:30:09
115
原创 Leetcode刷题记录3——罗马数字转整数
通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。例如, 罗马数字 2 写做 II ,即为两个并列的 1。否则,将其加到总和中。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。解释: M = 1000, CM = 900, XC = 90, IV = 4.I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
2025-03-01 21:57:33
232
原创 Leetcode刷题记录2——回文数
PS:之后我又看了下比我快的和比我慢的题解,似乎也都局限于这两种算法,可能这两种算法的时间消耗跟算法选择关系不大,可能跟硬件有关?给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。(3)x>0,通过取余10的方式一步步翻转x。例如,121 是回文,而 123 不是。(1)x<0,返回False;(2)x=0,返回True;
2025-03-01 15:41:24
127
原创 PyQT5学习笔记1——从UI界面设计到python代码转换与调用
本文的编写前提为读者已经完成了PyQT5的安装,并在pycharm中完成了相关配置,具体步骤可参考这位大佬的博客:本文的主要内容有:1、在PyQT中完成UI界面设计,并将设计好的UI界面保存为.ui文件2、将保存的.ui文件转换为.py文件3、编写python代码实现UI界面的调用下面开始正文。
2024-09-02 11:28:45
926
原创 python学习记录5——Python中的数
4、在Python中书写很大的数时可以使用下划线将其中的数字分组,使其更清晰易读,打印这种数时不会打印出其中的下划线。3、无论是哪种运算,只要有操作数是浮点数,Python默认得到的结果总是浮点数,即便结果原本为整数也是如此。2、Python中将任意两个数相除时,结果总是浮点数,即便这两个数都是整数且能整除。Python中常见的数包括整数和浮点数,下面记录一些特别的、反常识的应用法则。
2023-06-28 18:22:53
190
1
原创 python学习记录4——库的引用
Python提供了许多内置库和第三方库,可以帮助开发人员更快地编写代码。在Python中,要使用库,需要先引用它们。
2023-04-29 09:53:55
3043
原创 python学习记录3——基于turtle库的基本图形绘制
turtle库是Python中的一个绘图库,它可以让我们使用简单的命令来绘制各种图形,如线条、圆形、矩形等等。本文记录一部分turtle库的函数及其使用方法。
2023-04-29 09:33:44
675
原创 python学习记录2——输入输出
input()函数的使用格式为:<变量> = input(<提示信息字符串>)用户输入的信息以类型保存在<变量>中。
2023-04-17 09:11:47
189
原创 python学习记录1——缩进、注释、变量、保留字与数据类型
与其他语言不同,如C语言中,代码块的开始与结束可以用花括号表示,但在Python中,缩进是唯一的表示代码块的层次结构的方式,缩进的数量表示代码块的层次关系,所以在Python强制要求缩进,这也间接提高了代码的可读性。在这个示例中,if语句和else语句都是一个代码块,它们之间的缩进表示它们在同一个层次结构中。这个代码会出现语法错误,如下图所示,编译器会提示你if之后需要添加缩进的代码块。Python的强制缩进有以下几个特点:(1)缩进必须是空格或制表符,不能混用。
2023-04-13 09:56:28
440
原创 用8255实现电子钟功能
电子钟大作业内容利用 8253 和 8259 芯片实现实时电子时钟的功能;利用 8255 控制七段数码管完成定时扫描显示。显示格式为 xx 时 xx 分 xx 秒,每隔 1s,时间值改一次。开关 1 可选择时、分、秒,开关 2 可对所选的时、分、秒进行加 1,小时加至 23后清 0,分、秒加至 59 后清 0。大作业要求1、查阅资料,掌握共阳极七段数码管的工作原理。2、分析实验原理,设计实验方案,绘出实验连线图,搭建仿真实验电路。3、绘制实验程序流程图。4、编写实验程序,检查无误后
2021-11-25 17:39:07
6330
7
原创 数据结构上机实验记录——折半插入排序、快速排序、选择排序算法
实验五• 从键盘输入10个数。• 编程实现分别用折半插入排序、快速排序、选择排序算法进行排序,输出排序后的序列。
2020-11-22 21:10:58
1469
2
原创 ROS机器人开发学习记录1——创建工作空间和功能包——ROS安装、工作空间与创建工作空间
问题一:什么是工作空间?工作空间是一个存放工程开发相关文件的文件夹。
2020-11-15 10:25:35
218
原创 数据结构上机实验记录——遍历二叉树
实验四• 遍历二叉树。• 请输入一棵二叉树的扩展的前序序列,经过处理后生成一棵二叉树,然后对于该二叉树输出前序、中序和后序遍历序列。• 测试:• 输入:ABCDE*GF***实现代码如下:#include<stdio.h>#include<stdlib.h>typedef struct TreeNode//二叉树链表 { char data; struct TreeNode *lchild,*rchild;//建立左指针和右指针 }node,*tree;in
2020-11-14 00:24:41
2055
1
原创 数据结构上机实验记录——栈实现计算器
实验三• 实现简单计算器的功能,请按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序。要求支持运算符:+、-、、/、()和=:• 从键盘输入一个完整的表达式,以回车作为表达式输入结束的标志;• 输入表达式中的数值均为大于等于零的整数,如果中间计算过程中出现小数也只取整进行计算。• 例如,输入:(4+2)(2-10)=• 输出:-48...
2020-11-14 00:20:58
2263
7
原创 数据结构上机实验记录——归并顺序表
实验二归并顺序表。• 请按以下要求编程实现:• 从键盘输入两个升序排列的整数序列linka和linkb,每个序列以输入0为结束标记。• 将链表linka和linkb归并为linkc,linkc仍然为升序排列。归并完成后,linka和linkb为空表。输出linkc。• 对linkc进行处理,保持升序不变,删除其中重复的整数,对重复的整数只保留一个,输出删除重复整数后的链表。实现代码如下:#include<stdio.h>#include<stdlib.h>#incl
2020-11-14 00:12:08
545
1
原创 数据结构上机实验记录——约瑟夫环
实验一• 采用单向环表实现约瑟夫环。• 请按以下要求编程实现:• 从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的结点编号依次为1,2,……,m。• 从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。• 循环链表(带有头结点的单向环表)最后一个
2020-11-14 00:07:07
1434
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人