我把自己练习过的学而思编程周赛的题目都整理了一下。虽然网站上有许多高手的解法,但因为我自己也是初学者,所以只用了比较容易理解的方法来分析和解答。如果你也在学习的话,希望这些内容能对你有一点帮助。
2026年
【2026年春第15周】
参考链接:学而思编程每周练习赛-第15周-习题视频讲解与试题分析
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
字符串 |
⭐ |
字符串入门 / 桶计数 |
遍历字符串将大写字母统一转为小写(或小写转大写),用布尔数组 f[130] 按 ASCII 码标记出现过的字母,最后检查 'a' 到 'z' 是否全部标记为 true,若全部出现输出 Yes 否则输出 No,时间复杂度 \(O(|S|)\),空间复杂度 \(O(1)\)。 |
| B |
冲刺信奥 |
⭐ |
模拟 / 数学计算 |
先计算一周总做题量 \(s = 5a + 2b\),用 \(n / s \times 7\) 得到完整周数对应的天数,剩余不足一周的题量 \(n \% s\) 通过循环模拟周一至周日的做题过程(用数组 d[] = {a,a,a,a,a,b,b} 和模7循环取当天题量),直到累计超过剩余目标,总天数为完整周天数加最后模拟天数,时间复杂度 \(O(1)\)(最多7次循环),空间复杂度 \(O(1)\)。 |
| C |
最小结果 |
⭐⭐ |
字符串处理 / 枚举 |
先找到字符串中 '+' 的位置 mid,然后枚举左括号在 '+' 左侧的所有插入位置 \(i\)(\(0 \le i < mid\))和右括号在 '+' 右侧的所有插入位置 \(j\)(\(mid+1 \le j < n\)),将字符串分割为四段分别解析为整数 \(p, q, r, s\)(边界情况 \(p=1\) 或 \(s=1\)),计算 \(p \times (q+r) \times s\) 并取最小值,由于字符串长度很小,枚举复杂度可忽略,时间复杂度 \(O(n^2)\)(\(n\) 为字符串长度),空间复杂度 \(O(1)\)。 |
题目
题解:学而思编程 字符串
题解:学而思编程 冲刺信奥
题解:学而思编程 最小结果
【2026年春第14周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数字卡片 |
⭐ |
模拟 |
用布尔数组标记出现的数字,遍历 \(1 \sim n\) 找到未出现的那个。 |
| B |
数位排序 |
⭐ |
自定义排序 |
按数位和升序排序,数位和相同时按数值大小升序排序。 |
| C |
食堂排队 |
⭐⭐ |
模拟 / 贪心 |
维护当前已分配的最大时间 \(x\),对每个学生在其区间 \([l_i, r_i]\) 内找最早可用时刻,超出 \(r_i\) 则离开。 |
题目
题解:学而思编程 数字卡片
题解:学而思编程 数位排序
题解:学而思编程 食堂排队
【2026年春第13周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
零距离 |
⭐ |
模拟 |
遍历所有数字,维护绝对值最小且值最大的数(绝对值相同时取较大者)。 |
| B |
毕业照 |
⭐ |
自定义排序 |
奇数按升序排在前半段,偶数按降序排在后半段,一奇一偶时奇数优先。 |
| C |
整除子数组 |
⭐⭐ |
数学 / 枚举 |
利用"末两位能被 \(4\) 整除则整个数能被 \(4\) 整除"的性质,枚举以每个位置结尾的末两位组合。 |
题目
题解:学而思编程 零距离
题解:学而思编程 毕业照
题解:学而思编程 整除子数组
【2026年春第12周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数字和为 \(x\) 的整数 |
⭐ |
DFS / 枚举 |
按位数 DFS 生成所有不超过 \(n\) 的数字,筛选数位和等于 \(x\) 的,注意去重和剪枝。 |
| B |
打印金字塔图案 |
⭐ |
模拟 |
按层打印前导空格和上下两层三角形,控制空格与图案的间距规律。 |
| C |
计算因质数 |
⭐⭐ |
质数 / 筛法预处理 |
用类似筛法预处理每个数的所有质因数乘积,查询时 \(O(1)\) 输出。 |
题目
题解:学而思编程 数字和为x的整数
题解:学而思编程 打印金字塔图案
题解:学而思编程 计算因质数
【2026年春第11周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数数字 |
⭐ |
模拟 / 计数 |
用计数数组统计每个数字出现次数,遍历统计出现次数大于 \(0\) 的数字个数。 |
| B |
库存查询 |
⭐ |
模拟 / 哈希计数 |
用计数数组预处理每种价格的商品数量,每次查询 \(O(1)\) 回答。 |
| C |
第K个约数 |
⭐⭐ |
约数枚举 |
先求所有数的和 \(m\),再枚举到 \(\sqrt{m}\) 找出所有约数,排序后取第 \(k\) 个。 |
题目
题解:学而思编程 数数字
题解:学而思编程 库存查询
题解:学而思编程 第K个约数
【2026年春第10周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
独一无二 |
⭐ |
模拟 / 计数 |
用计数数组统计每个数字出现次数,按从小到大顺序找到第一个出现次数为 \(1\) 的数字。 |
| B |
路灯维修 |
⭐ |
模拟 / 区间覆盖 |
用布尔数组标记所有故障路段覆盖的位置,最后统计未被标记的路灯数量。 |
| C |
回文质数(一) |
⭐⭐ |
质数 / 回文数构造 |
枚举回文数的一半构造完整回文数,再判断是否为质数,避免直接枚举 \([L,R]\) 范围内所有数。 |
题目
题解:学而思编程 独一无二
题解:学而思编程 路灯维修
题解:学而思编程 回文质数(一)
【2026年春第9周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
疫苗接种 |
⭐ |
模拟 |
从给定日期开始逐天加 \(1\),跨过月末和年末时进位,共推移 \(21\) 天。 |
| B |
拼数字 |
⭐ |
模拟 / 贪心 |
从 \(1\) 开始依次尝试拼出每个数字,逐位消耗对应数字卡片,卡片耗尽时停止。 |
| C |
完全平方数 |
⭐⭐ |
质因数分解 |
将 \(n\) 分解质因数,每个质因数的指数为奇数时补乘一次,使所有指数变为偶数。 |
题目
题解:学而思编程 疫苗接种
题解:学而思编程 拼数字
题解:学而思编程 完全平方数
【2026年春第8周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
最年长的人 |
⭐ |
模拟 |
比较 \(n\) 个出生日期,找最早的日期(年最小 \(\to\) 月最小 \(\to\) 日最小),输出时补前导零。 |
| B |
感应门 |
⭐ |
模拟 |
维护当前开门区间 \([\text{open}, \text{close}]\),若下一个人通过时间在关门之前则延长关门时间,否则结算上一段并开启新段。 |
| C |
懒惰的猫咪 |
⭐⭐ |
构造 / 分类讨论 |
错位排列问题,\(n\) 为偶数时相邻交换,\(n\) 为奇数时前 \(n-3\) 个相邻交换、最后三个循环移位,使总移动距离最小且字典序最小。 |
题目
题解:学而思编程 最年长的人
题解:学而思编程 感应门
题解:学而思编程 懒惰的猫咪
【2026年春第7周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数字加密 |
⭐ |
模拟 |
对密文每位取 \(9\) 的补数,然后倒序输出(个位 \(\to\) 千位、十位 \(\to\) 百位)即为明文。 |
| B |
签到积分 |
⭐ |
模拟 |
连续签到天数为 \(k\) 时当天得 \(\min(k, 7)\) 分,断签时 \(k\) 重置为 \(0\)。 |
| C |
特殊素数对 |
⭐⭐ |
质数判定 |
判断 \(n\) 是否为素数且存在距离为 \(6\) 的素数邻居;若不是则从 \(n+1\) 开始找第一个特殊素数。 |
题目
题解:学而思编程 数字加密
题解:学而思编程 签到积分
题解:学而思编程 特殊素数对
【2026年春第6周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数字谜题 |
⭐ |
模拟 |
逐位统计数字中"圈"的数量:\(0,4,6,9\) 各 \(1\) 个,\(8\) 有 \(2\) 个,其余为 \(0\)。 |
| B |
质数 |
⭐ |
质数判定 |
将区间端点调整为以 \(1\) 结尾的数,步长 \(10\) 枚举并判定素数。 |
| C |
文件传输 |
⭐⭐ |
数学 / 贪心 |
前 \(k\) 小时内已安装文件的机器数指数增长(每小时翻倍),之后线性增长(每小时增加 \(k\))。 |
题目
题解:学而思编程 数字谜题
题解:学而思编程 质数
题解:学而思编程 文件传输
【2026年春第5周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
青蛙跳 |
⭐ |
数学 |
\(k\) 次跳跃中每 \(2\) 次为一个周期,净位移为 \(a-b\),奇数步时最后再加一个 \(a\)。 |
| B |
汽水兑奖 |
⭐ |
数学 / 模拟 |
每次喝完汽水累加瓶盖和空瓶,用余数累加方式模拟兑换过程,直到无法再兑换。 |
| C |
增长或翻倍 |
⭐⭐ |
数学 / 逆向思维 |
从 \(t\) 逆向操作:偶数且折半后 \(\geq s\) 则除以 \(2\),否则减 \(1\),直到等于 \(s\)。 |
题目
题解:学而思编程 青蛙跳
题解:学而思编程 汽水兑奖
题解:学而思编程 增长或翻倍
【2026年春第4周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
特殊数字1 |
⭐ |
模拟 |
逐位分解 \(n\),检查每个非零数码是否都能整除 \(n\)。 |
| B |
打印K型图案 |
⭐ |
模拟 |
分上、中、下三部分控制星号和空格的输出规律,按行打印。 |
| C |
调整元素 |
⭐⭐ |
数学 / 奇偶性 |
每次操作加 \(2\) 不改变奇偶性,故所有元素最终能相等当且仅当它们初始奇偶性全部相同。 |
题目
题解:学而思编程 特殊数字1
题解:学而思编程 打印K型图案
题解:学而思编程 调整元素
【2026年春第3周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
元素分类 |
⭐ |
模拟 / 贪心 |
正数全归入 \(b\) 类、负数全归入 \(c\) 类,\(sum_b - sum_c\) 即为正数和减负数和的绝对值之和。 |
| B |
体育课 |
⭐ |
模拟 |
按器材类型统计借出次数,计算总次数和各类占比,百分比保留两位小数。 |
| C |
公平分配 |
⭐⭐ |
数学 / 奇偶性 |
糖果只有 \(1\) 克和 \(2\) 克两种,总重量为偶数且 \(1\) 克糖果个数为偶数(或没有 \(1\) 克时 \(2\) 克个数为偶数)才能平分。 |
题目
题解:学而思编程 元素分类
题解:学而思编程 体育课
题解:学而思编程 公平分配
【2026年春第2周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
三角形类型 |
⭐ |
模拟 |
将三边降序排列后,依次判断能否构成三角形、按角分类(直角/钝角/锐角)、按边分类(等边/等腰),满足多条时按顺序输出。 |
| B |
划拳 |
⭐ |
模拟 |
按规则模拟 \(k\) 轮划拳:数字相同均不得分;特殊规则(\(20\) 对 \(5\)/\(10\))时 \(20\) 方不得分对方得 \(10\) 分;否则大数方得差值分。 |
| C |
排位 |
⭐⭐ |
数学 / 分类讨论 |
小X前面不少于 \(a\) 人、后面不超过 \(b\) 人,按 \(a+b\) 与 \(n\) 的大小关系分三种情况讨论可能的排位数量。 |
题目
题解:学而思编程 三角形类型
题解:学而思编程 划拳
题解:学而思编程 排位
【2026年春第1周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
演讲比赛 |
⭐ |
模拟 |
遍历 \(n\) 个分数求和同时维护最大最小值,去掉两极值后除以 \(n-2\) 得平均分。 |
| B |
平均数 |
⭐ |
模拟 |
按权重 \(2:3:4:1\) 计算加权平均,根据分数段判定通过/不通过/补考,补考后重新计算最终成绩。 |
| C |
蚂蚁 |
⭐⭐ |
思维转化 / 模拟 |
两只蚂蚁相遇掉头等价于互相穿过,故每只蚂蚁独立运动,答案为所有蚂蚁到对应端点的最大距离。 |
题目
题解:学而思编程 演讲比赛
题解:学而思编程 平均数
题解:学而思编程 蚂蚁