#12060. Security 2 构造
Security 2 构造
✅ Day 5:Security 2 构造
题目描述
你需要从一个空字符串出发,使用以下两种操作构造出目标数字字符串 :
- 按 A 键 :向末尾添加字符
'0'
; - 按 B 键 :将当前所有数字整体 + 1(注意
'9'
会变为'0'
,类似轮盘)。
问: 最少需要多少次操作,才能构造出目标字符串 ?
输入格式
一行,一个字符串 ,仅包含数字字符(0
~9
),长度不超过 。
输出格式
一行,一个整数,表示构造目标字符串所需的最少按键次数。
输入样例
407
输出样例
17
构造提示
-
从 后往前逐位构造;
-
每一位固定一个
'0'
(即按一次 A); -
然后通过若干次 B 操作将其调整为目标数字;
-
B 是全局共享的,要考虑累积偏移(轮盘式 + 1):
本位 B 操作数 = (k−b % 10 + 10) % 10 其中:
k
是目标位;b
是当前累积的 B 次数;- 每位都要执行一次 A,再计算最小增量 B。
算法小贴士
*用一个变量 b
记录当前累计 B 操作偏移;
- 从字符串尾部向前遍历,每位都:
- A:计数 + 1;
- B:计算需要补多少次,使当前位变成目标位;
- 更新偏移量
b
; - 时间复杂度: