跳转至

3260. 找出最大的 N 位 K 回文数

题目描述

给你两个 正整数 nk

如果整数 x 满足以下全部条件,则该整数是一个 k 回文数

  • x 是一个 回文数
  • x 可以被 k 整除。

以字符串形式返回 最大的  nk 回文数

注意,该整数 含前导零。

 

示例 1:

输入: n = 3, k = 5

输出: "595"

解释:

595 是最大的 3 位 k 回文数。

示例 2:

输入: n = 1, k = 4

输出: "8"

解释:

1 位 k 回文数只有 4 和 8。

示例 3:

输入: n = 5, k = 6

输出: "89898"

 

提示:

  • 1 <= n <= 105
  • 1 <= k <= 9

解法

方法一

思考

要构造长度为 \(n\) 且能被 \(k\) 整除的最大回文数,\(n\le 10^5\)\(k\le 9\)。从大到小枚举回文不可行;只需定前半,后半由镜像确定,并对 \(k\) 取模。

\(k\) 的因子分类(如 \(1,2,4,5,8\) 只约束尾数,\(3,9\) 约束数位和,\(6,7\) 需同时照顾模),从高位贪心填 \(9\) 并修正最低几位使整模为 \(0\)。题面暂无实现代码,思考依此「定前半、按 \(k\) 修尾」的构造。

1

1

1

1

评论