获得徽章 6
- #刷题交流# 打卡《连续子串和的整除问题》
解题展示:前缀和:我们可以计算序列的前缀和数组 prefix_sum,其中 prefix_sum[i] 表示从序列的开始到第 i 个元素的和。模运算:对于每个前缀和 prefix_sum[i],我们计算它对 b 取模的结果 prefix_sum[i] % b。哈希表:我们使用一个哈希表来记录每个模结果出现的次数。如果两个前缀和的模结果相同,那么它们之间的子序列的和就是 b 的倍数。展开赞过评论1 - #刷题交流# 打卡《分组飞行棋棋子》
解题展示:统计每个序号的棋子数量:使用字典count_dict来记录每个序号的棋子数量。遍历nums列表,对于每个序号,如果已经在字典中,则数量加1;否则,初始化为1。检查是否可以分组:遍历字典中的每个值(即每个序号的棋子数量),检查其是否是5的倍数。如果有任何一个值不是5的倍数,则返回"False";否则,返回"True"。展开评论点赞 - #刷题交流# 打卡《多米诺骨牌均衡状态》
解题展示:初始化数据结构:使用 list(data) 来存储每个骨牌的状态。模拟骨牌倒下的过程:对于每个 'L',从当前位置向左遍历,直到遇到另一个 'L' 或 'R'。对于每个 'R',从当前位置向右遍历,直到遇到另一个 'L' 或 'R'。统计最终竖立的骨牌:遍历 status 列表,统计仍然竖立的骨牌数量和位置。展开评论点赞 - #刷题交流# 打卡《打点计数器的区间合并》
解题展示:排序:通过排序,我们可以确保区间是按起始值从小到大排列的,这样在合并时可以更方便地处理重叠区间。
合并区间:我们遍历每个区间,如果当前区间的起始值大于最后一个合并区间的结束值,则说明没有重叠,直接加入合并后的区间列表;否则,更新最后一个合并区间的结束值。
计算唯一数字的数量:遍历合并后的区间列表,累加每个区间的长度(结束值减去起始值再加1)。展开评论点赞 - #刷题交流# 打卡《Base32 编码和解码问题》
解题展示:encode 函数中,binary_data 是原始字符串的二进制表示。
encode 函数中,groups 是将二进制数据按 5 位一组进行分组的结果。
encode 函数中,indices 是将每组 5 位二进制数据转换为索引的结果。
encode 函数中,encoded 是最终的 Base32 编码结果。
decode 函数中,encoded 是移除 + 字符后的 Base32 编码字符串。
decode 函数中,indices 是将每个字符转换为对应的索引的结果。
decode 函数中,binary_data 是将索引转换为 5 位二进制数据的结果。
decode 函数中,decoded 是最终的解码结果。展开赞过评论1 - #刷题交流# 打卡《简单四则运算解析器》
解题展示:定义运算符的优先级:使用字典来存储运算符的优先级。
**辅助函数 apply_operation**:用于计算两个数的运算结果。
**辅助函数 process_stack**:用于处理栈中的数字和运算符。
初始化栈:使用两个栈,一个用于存储数字,一个用于存储运算符。
解析表达式:遍历表达式字符串,根据字符类型进行不同的处理。
处理括号:使用栈来处理括号,确保括号内的表达式优先计算。
处理剩余的运算符:在遍历完表达式后,处理栈中剩余的运算符。展开赞过评论1 - #刷题交流# 打卡《优化青海湖至景点X的租车路线成本》
解题展示:排序加油站:确保按距离排序,以便按顺序访问。计算距离:根据当前加油站和下一个加油站的距离,计算需要行驶的距离。加油逻辑:根据当前油量和需要行驶的距离,决定是否需要加油,并计算加油量和成本。到达终点检查:确保到达终点时油量满足要求。赞过评论1 - #刷题交流# 打卡《环状 DNA 序列的最小表示法》
解题展示:doubled_sequence = dna_sequence + dna_sequence:将序列复制并拼接成两倍长度,以便可以从任意位置开始截取子序列。min_sequence = doubled_sequence[:n]:初始化最小序列为从第一个位置开始的子序列。for i in range(1, n):遍历所有可能的起始位置。current_sequence = doubled_sequence[i:i+n]:获取从当前位置开始的子序列。if current_sequence < min_sequence:比较当前子序列与最小序列,更新最小序列。展开评论点赞 - #刷题交流# 打卡《完美偶数计数》
解题展示:初始化计数器:我们使用 count 变量来记录满足条件的元素个数。**遍历数组 a**:我们使用 for 循环遍历数组 a 中的每个元素。检查偶数:使用 num % 2 == 0 来判断当前元素 num 是否是偶数。检查区间:使用 l <= num <= r 来判断当前偶数 num 是否在区间 [l, r] 之间。计数器加一:如果 num 满足上述两个条件,则 count 加一。返回结果:最后返回 count 的值。展开等人赞过15