- 博客(14)
- 收藏
- 关注
原创 c++输入方式总结
2. (读取整行) 用于读取整行字符串,包含空格。3. (C 风格输入) 格式化输入,比 快,但不够安全。4.文件输入 () 适用于读取文件数据,通常用于大规模数据处理。5.字符串输入 ()6. 逐个字符读取,适合字符流处理。7.(二进制输入) 直接读取二进制数据,适用于处理文件流、网络数据。
2025-03-07 21:04:03
602
原创 c++中哈希表的使用
是 C++ 标准库提供的哈希表实现,基于哈希桶(hash buckets)。它适用于键值对存储,支持快速插入、删除和查找(平均 O(1) 复杂度)。适用于仅存储唯一键的情况,不存储值。
2025-03-02 17:02:53
841
原创 力扣-44.通配符匹配
值得注意的是第三种情况,要注意星号可以匹配任意字符串,所以星号既可以消掉p的字符,也可以消掉s的字符,s的字符一个一个消即可,因为消多个的情况之前其实已经算过了。状态的表示与第十题完全相同。题意与力扣第10题类似,但是更简单。
2025-02-26 17:15:34
165
原创 力扣-10.正则表达式匹配
s[i−1] 和 p[j−2] 不匹配,还有救,p[j−1] 星号可以干掉 p[j−2],继续考察 s(0,i−1) 和 p(0,j−3)。看了一个题解,选择用dp[i][j] 来表示s[0]...s[i]的子串和p[0]...p[j]的子串是否匹配。右端不匹配,还不能判死刑——可能是 p[j−1] 为星号造成的不匹配,星号不是真实字符,它不匹配不算数。2.如果p[j−1]=="∗",但 s[i−1] 和 p[j−2] 不匹配。情况1:s[i−1] 和 p[j−1] 是匹配的。
2025-02-25 22:42:42
618
原创 力扣-5.最长回文子串
先初始化子串长度为1和2的情况,因为这是可以确定的,那么之后子串的左右边界差就可以从2开始了。需要注意的是,枚举左边界时,需要从字符串的最右开始向左,右边界需要从左向右。原因和动态转移方程有关,f[i][j]的值和f[i+1][j-1]有关,要是不按这个顺序来,你会发现计算f[i][j]时,f[i+1][j-1]还没计算过,那答案肯定是错的!对于长度为 2 的子串,只要它的两个字母相同,它就是一个回文串。总结就是:先确定动态转移方程和边界条件,再确定如何循环,逐渐由局部最优解得出全局最优解。
2025-02-25 21:02:59
241
原创 力扣-8.字符串转换整数
之后发现,为负数的情况可以和正数的情况可以合并,因为只要s[j]>7,肯定只能是int_max和int_min,不然当是负数且为-2147483648时,最后一步的res = res * 10 + (s[j] - '0')的指会是2147483648,明显是会爆掉的。这题只需模拟即可,先处理前置空格,再判断符号,再读取连续的数字即可。
2025-02-21 17:56:27
195
原创 力扣-3.无重复字符的最长子串
假设我们选择字符串中的第k个字符作为起始位置,并且得到了不包含重复字符的最长子串的结束位置为r。那么当我们选择第k+1个字符作为起始位置时,首先从k+1到r 的字符显然是不重复的,右指针可以从r开始继续增加,这样可以保证右指针始终增加,时间复杂度为O(n)。思路:从左到右移动左指针,依次找出以每个字母为开头的最长的无重复字符的子串,采用哈希表来实现无重复字符子串。
2025-02-21 17:04:19
178
原创 力扣刷题-中等题2.两数相加
注意循环时需要先创建一个结点,否则最后结果链表中会多出一个值为0的结点!你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。
2025-02-21 15:23:42
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅