【LeetCode】力扣刷题记录-正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s 的,而不是部分字符串。 示例 1: 123输入:s = "aa", p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。 示例 2: 123输入:s = "aa", p = "a*"输出:true解释:因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。 示例 3: 123输入:s = "ab", p = ".*"输出:true解释:".*" 表示...
【LeetCode】力扣刷题记录-回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 示例 1: 12输入:x = 121输出:true 示例 2: 123输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 123输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。 提示: -231 <= x <= 231 - 1 进阶:你能不将整数转为字符串来解决这个问题吗? 123456789101112131415161718192021class Solution: def isPalindrome(self, x: int) -> bool: # 负数不是回文数 if x < 0: return False # 单个数字是回文数 ...
【LeetCode】力扣刷题记录-字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。 函数 myAtoi(string s) 的算法如下: 空格: 读入字符串并丢弃无用的前导空格(" ") 符号: 检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。 转换: 通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。 舍入: 如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被舍入为 −231 ,大于 231 − 1 的整数应该被舍入为 231 − 1 。 返回整数作为最终结果。 示例 1: 输入: s = “42” 输出: 42 解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。 1234567带下划线线的字符是所读的内容,插入符号是当前读入位置。第 1 步:"42"(当前没有读入字符,因为没有...
【LeetCode】力扣刷题记录-整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 12输入:x = 123输出:321 示例 2: 12输入:x = -123输出:-321 示例 3: 12输入:x = 120输出:21 示例 4: 12输入:x = 0输出:0 提示: -231 <= x <= 231 - 1 有人跟我说,你直接用[::-1]不就好了?但是我们想想,如果x = -123,[::-1]的结果是什么?是不是321-?,那么如果是1230,是不是变成了0123? 所以… 1234567891011121314151617181920212223242526272829class Solution: def reverse(self, x: int) -> int: # 处理符号,记录是否为负数 sign = -1 if x < 0 else 1 ...
【LeetCode】力扣刷题记录-Z字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: 123P A H NA P L S I I GY I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。 请你实现这个将字符串进行指定行数变换的函数: 1string convert(string s, int numRows); 示例 1: 12输入:s = "PAYPALISHIRING", numRows = 3输出:"PAHNAPLSIIGYIR" 示例 2: 1234567输入:s = "PAYPALISHIRING", numRows = 4输出:"PINALSIGYAHRPI"解释:P I NA L S I GY A H RP I 示例 3: 12输入:s = "...
2024御网杯 线下半决赛 Misc WriteUp
前言本文章编写为2024御网杯高职组线下半决赛WriteUp,线下半决赛抽签号为B12,一点之前一直是第一,赛后听到很多大佬说没工具,大部分自己都是线上的工具,线下没网。但是,线下也有相应的解法,问题不大。 Miscsimple_analysis 这道题看上去好像什么都没有,但是其实在Windows 11的记事本打开会看到特殊字符: 直接0宽度隐写秒了,签到题难度。工具地址:https://330k.github.io/misc_tools/unicode_steganography.html 但是此时问题出现了,我们常用的0宽都是线上在线使用的,怎么办呢? 您看这是什么呢?https://gitcode.com/open-source-toolkit/fe9fb/overview kitty附件是一个xlsx文件 但是打开提示报错 我们尝试使用010 Editor看看 发现是压缩包,文件头为我们熟悉的50 4B 03 04 14 00 继续解压,得到了kitty.xml 为了避免上当受骗,我们还是来看下010 果然,小骗子!! 从文件头看出来,这是一个PNG文...
【LeetCode】力扣刷题记录-连续出现的数字
表:Logs 12345678+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+在 SQL 中,id 是该表的主键。id 是一个自增列。 找出所有至少连续出现三次的数字。 返回的结果表中的数据可以按 任意顺序 排列。 结果格式如下面的例子所示: 示例 1: 123456789101112131415161718192021输入:Logs 表:+----+-----+| id | num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+输出:Result 表:+-----------------+| ConsecutiveNums |+-----------------...
【LeetCode】力扣刷题记录-分数排名
表: Scores 12345678+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || score | decimal |+-------------+---------+id 是该表的主键(有不同值的列)。该表的每一行都包含了一场比赛的分数。Score 是一个有两位小数点的浮点值。 编写一个解决方案来查询分数的排名。排名按以下规则计算: 分数应按从高到低排列。 如果两个分数相等,那么两个分数的排名应该相同。 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。 按 score 降序返回结果表。 查询结果格式如下所示。 示例 1: 1234567891011121314151617181920212223输入: Scores 表:+----+-------+| id | score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 |...
【LeetCode】力扣刷题记录-第N高的薪水
表: Employee 12345678+-------------+------+| Column Name | Type |+-------------+------+| id | int || salary | int |+-------------+------+id 是该表的主键(列中的值互不相同)。该表的每一行都包含有关员工工资的信息。 编写一个解决方案查询 Employee 表中第 n 高的 不同 工资。如果少于 n 个不同工资,查询结果应该为 null 。 查询结果格式如下所示。 示例 1: 12345678910111213141516输入: Employee table:+----+--------+| id | salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+n = 2输出: +------------------------+| getNthHighestSalary(2) |+---------------...
【LeetCode】力扣刷题记录-第二高的薪水
Employee 表: 12345678+-------------+------+| Column Name | Type |+-------------+------+| id | int || salary | int |+-------------+------+id 是这个表的主键。表的每一行包含员工的工资信息。 查询并返回 Employee 表中第二高的 不同 薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。 查询结果如下例所示。 示例 1: 123456789101112131415输入:Employee 表:+----+--------+| id | salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+输出:+---------------------+| SecondHighestSalary |+---------------------+| 200 ...














